Например, если A имеет внутренний класс B, B имеет внутренний класс C, все имеют свойство «имя», я знаю, что C может получить доступ к имени в B по B.this.name, но как получить доступ к имени в A из C ?Как получить доступ к внешнему внешнему классу (не внешнему классу)?
public class A{
String name="A";
public class B{
String name="B";
public class C{
String name="C";
public C(){
//how to print name in A?
//System.out.println(B.A.name);
//System.out.println(B.A.this.name);
//System.out.println(B.this.A.name);
//System.out.println(B.this.A.this.name);
}
}
C c=new C();
}
B b=new B();
public static void main(String[] args){
new A();
}
}
Я попытался так много синтаксиса, но они не могут компилировать, а также при поиске Java внешний класс, я обнаружил, большинство из них о внешнем классе только, а не внешний внешний класс.
Почему вы создаете эти много сложностей какую-либо конкретную причину? –
Передать конструктор «A» в «B» и передать «B» в конструктор «C», если вам действительно нужны эти вложенные классы –
@DiSaSteR, здесь нет наследования. 'super()' будет вызывать конструктор класса 'Object'. – Codebender