不面試不知道自己多菜,看題
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();
靜態方法是對應類的方法,沒有具體實例的引用。所以不能直接通過類名創建內部類。需要創建外部類實例,在通過這個實例創建內部類
靜態內部類就和外部類區別不大。但是創建方式要通過 外部類名.內部類名的方式創建