[Resolvido] Dúvida questão (Inner class)

[code]class A {
void m(){
System.out.println(“outer”);
}
}

public class TestInners {

public static void main(String[] args) {
    new TestInners().go();
}
void go() {
    new A().m();
    class A {
        void m() {
            System.out.println("inner");
        }
    }
}
class A{
    void m(){
        System.out.println("middle");
    }

}
}[/code]
O código acima imprime middle. Mas e se eu quisesse construir a classe A (não interna) de dentro do método go(), seria possível? Ou seja, como fazer o código acima imprimir outer sem excluir a classe A que imprime middle?

Você teria que fazer new NomeDoPacote.A()

Sem um pacote, não creio que seja possível.

Não sei se é isso que vc quer…

[code]class A {
void m(){
System.out.println(“outer”);
}
}

public class TesteInners {

 public static void main(String[] args) {  
     new TesteInners().go();  
 }  
 void go() {  
     // new A().m();  
     class A {  
         void m() {  
             System.out.println("inner");  
         }  
     }
     
     A a = new A();
     a.m();
 }  
 class A{  
     void m(){  
         System.out.println("middle");  
     }  
}  

}[/code]

[EDIT] - Foi mal… agora que ví… vc quer imprimir outer…

Falows :wink:

Realmente… o Vinny tem razão…

Abs :wink:

[quote=ViniGodoy]Você teria que fazer new NomeDoPacote.A()

Sem um pacote, não creio que seja possível.[/quote]
Obrigado, o meu medo era que fosse possível sem um pacote.
Acho que tô começando a ficar paranóico. :oops:

[quote=java.lang.JJunior][quote=ViniGodoy]Você teria que fazer new NomeDoPacote.A()

Sem um pacote, não creio que seja possível.[/quote]
Obrigado, o meu medo era que fosse possível sem um pacote.
Acho que tô começando a ficar paranóico. :oops: [/quote]

O java não foi feito para trabalhar sem pacotes. Dentro de qualquer pacote, as classes sem pacote ficam completamente inacessíveis.

[quote=Jairo Junior][code]class A {
void m(){
System.out.println(“outer”);
}
}

public class TestInners {

public static void main(String[] args) {
    new TestInners().go();
}
void go() {
    new A().m();
    class A {
        void m() {
            System.out.println("inner");
        }
    }
}
class A{
    void m(){
        System.out.println("middle");
    }

}
}[/code]
O código acima imprime middle. Mas e se eu quisesse construir a classe A (não interna) de dentro do método go(), seria possível? Ou seja, como fazer o código acima imprimir outer sem excluir a classe A que imprime middle?
[/quote]

[b]Olá!

Eu não entendi a ordem de chamada do método m().
Alguém me poderia explicar como funciona ?[/b]