Nested Classes

Boa tarde galera,

Tenho esse código e gostaria de saber pq n imprime “Classe B em A”

class A{
 
 	public A(){
 		System.out.println("Classe A");
 	}

	public B classeB(){
		return new B() { 
			public void B(){ 
				System.out.println("Classe B em A"); 
			} 
		};
	}
 
 }

 class B{
 
 	public B(){
 		System.out.println("Classe B");
 	}

 }

class  TesteAninhado{
	public static void main(String[] args){
		A i = new A();
		i.classeB();
	}
}

Desculpem minha burrice

Vamos tentar analizar:

class TesteAninhado{ public static void main(String[] args){ A i = new A(); i.classeB(); } }

Nesta parte vamos até o construtor da classe A

[code]class A{

public A(){
	System.out.println("Classe A");
}

[/code]
Aqui ja será impresso ‘Classe A’

Aqui vamos até o método classeB

public B classeB(){ return new B() { public void B(){ System.out.println("Classe B em A"); } }; }
Quando ele faz return new B() vamos até o construtor da classe B

[code]class B{

public B(){
	System.out.println("Classe B");
}

}[/code]
E aqui temos a impressão de 'Classe B’
e termina porque public void B() nunca será usado concorda ??

Espero q tenha entendido
8)

neohacker,
quase…agora me diga pq eu n posso tirar esse void?

public B classeB(){
  		return new B() { 
  			public void B(){ 
  				System.out.println("Classe B em A"); 
  			} 
  		};
  	}

ih entendi foi mal hehehe
valeu :smiley:

Entendeu na boa??
entaum ta certo se precisar estamos ae ok??

hehehe de boa
valeu :smiley: