原因如下:
1.内部类可以访问外部类的成员变量
2.对象创建完成后对象的成员变量才会被分配空间
3.main的静态方法执行时可以不存在外部类,不创建实体对象
4.内部类能访问成员变量意味着一定存在外部类实体对象
因为3和4矛盾,所以在静态方法中不能new内部类的实体对象
这个是错误的
class demo{
public void func(){
//位置1;
}
class Inner{}
public static void main(String[] args){
demo d=new demo();
// 位置2
new Inner();
}
}