不面试不知道自己多菜,看题
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();
静态方法是对应类的方法,没有具体实例的引用。所以不能直接通过类名创建内部类。需要创建外部类实例,在通过这个实例创建内部类
静态内部类就和外部类区别不大。但是创建方式要通过 外部类名.内部类名的方式创建