public class OuterClass {
int num = 3;
void displayNum(int num) {
System.out.println(num);
}
void testLocalClassAccess() {
class LocalClass {
{
displayNum(num);
}
LocalClass(){
System.out.println("2");
}
}
new LocalClass() {
{
System.out.println("test");
}
};
}
}
class TestLocalClassAcessClass {
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
outerClass.testLocalClassAccess();
}
}
Output:
3
2
Test
A classe anônima está instanciando LocalClass?
Eu sei que, a classe anônima vira subclasse de LocalClass no código.
Parece que, sendo a classe anônima uma subclasse de LocalClass, a classe anônima chama o código de construção (constructor code) de LocalClass.
O inicializador de instâncias (que chama ‘displayNum(num);’) corre junto com o código de construção de LocalClass?
Alguém sabe, o que realmente acontece quando a classe anônima é invocada?
Obrigado.
