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.吐槽

肚子有点疼

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1