Java FAQ:内部クラスから外側のクラスのメソッドや変数を明示的に参照する
Java FAQ:S016 Q-10
まんま
class C2008053100_Outer { int var = 0; class C2008053100_Inner { int var = 1; class C2008053100_MostInner { int var = 2; public void innerMethod() { System.out.println("this.var = " + var); System.out.println("this.var = " + this.var); System.out.println("Outer.this.var = " + C2008053100_Outer.this.var); System.out.println("Inner.this.var = " + C2008053100_Inner.this.var); } } } } public class C2008053100 { public static void main(String[] args) { C2008053100_Outer.C2008053100_Inner.C2008053100_MostInner inner = new C2008053100_Outer().new C2008053100_Inner().new C2008053100_MostInner(); inner.innerMethod(); } }
で、
this.var = 2 this.var = 2 Outer.this.var = 0 Inner.this.var = 1