在内部类中,如果要生成对外部类对象的引用,可以使用外部类的名字加.this,如Outer.this。
如果想要直接创建内部类的对象,可以使用外部类对象加.new,如new Outer().new。
1 package test; 2 3 import test.Outer.Inner; 4 5 class Outer{ 6 public Outer(){ 7 System.out.println("outer"); 8 } 9 10 class Inner{ 11 public Inner(){ 12 System.out.println("inner"); 13 } 14 15 public Outer getOuter(){ 16 //使用.this访问外部类 17 return Outer.this; 18 } 19 } 20 } 21 22 public class Test { 23 public static void main(String[] args){ 24 Outer o = new Outer(); 25 //使用.new创建内部对象 26 Outer.Inner i = o.new Inner(); 27 i.getOuter(); 28 } 29 }