DESKTOP-7J91214_20200902-张军强
1.问题
内部类
public class Outer{
public voiid someOuterMethod(){
//new Inner(); //正确
}
public class Inner{}
public static void main(String[] args){
Outer outer = new Outer();
//new Inner(); //错误
//new Outer.Inner(); //错误
//outer.new Inner() //正确
}
}
2.解决
非静态的内部类初始化必须要依赖于外部类,line3 填 new Inner(),能够调用method方法,外部类肯定已经初始化了,所以能够直接line3 可以写 new Inner()。
如果line8中填:outer . new Inner(); 则可以通过,借助外部类,从而实例化内部类。
如果内部类Inner声明为static的,则 line8 写 new Inter(); 也对。
3.吐槽
肚子有点疼
点赞