java 内部类小计

不面试不知道自己多菜,看题

class Simple {
    class InnerClass {}
    void test1(){
        InnerClass innerClass = new InnerClass();
    }

    public static void test2(){
        new innerClass();
    }

    public static void main(String[] args) {
        new innerClass();
    }
}

找出那里会报错

这个题涉及到成员内部类,之前啃过的书有讲,但是翻篇就忘,还得等记一下

在类中定义的类叫成员内部类,这个类可以直接访问实例的属性,包括private属性。既然能放问实例的属性了,说明它有对应实例的引用。所以它的创建方式是基于实例的

Outer outer = new Outer();
Inner inner = outer.new Inner();

静态方法是对应类的方法,没有具体实例的引用。所以不能直接通过类名创建内部类。需要创建外部类实例,在通过这个实例创建内部类

静态内部类就和外部类区别不大。但是创建方式要通过  外部类名.内部类名的方式创建

参考资料:Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章