内部类在创建实例时的写法比较诡异。
在创建实例内部类的实例时,外部类的实例必须已经存在。例如Outer是外部类,Inner是Outer的内部类,如果要创建Inner类的实例就必须先创建Outer外部类的实例。
在创建实例内部类的实例时,外部类的实例必须已经存在。例如Outer是外部类,Inner是Outer的内部类,如果要创建Inner类的实例就必须先创建Outer外部类的实例。
Outer.Inner oi = new Outer().new Inner();
以上代码等价于
Outer outer = new Outer();
Outer.Inner oi = outer.new Inner();
如果像下面这样写是错误的,会导致编译错误。
Outer.Inner oi = new Outer.Inner();