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中的內部類(成員內部類、靜態內部類、局部內部類、匿名內部類)

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