public class test1 {
private int outProp=9;
class Inner
{
private int inProp=10;
public void acessOutProp(){
System.out.println("外部类的outProp值:"+outProp);
}
}
public void accessInnerProp(){
//外部类不能直新年好访问非静态内部类的实例Field
//下面代码不能通过编译
//System.out.println("内部类的inProp值:"+inProp);
System.out.println("内部类的inProp值:"+new Inner().inProp);
}
public static void main(String[] args){
test1 out=new test1();
out.accessInnerProp();
}
}
代码是上面的,我有点不解的是,内部类在一个类中的地位其实应该跟其他Field一样,既然现在定义的是非静态内部类,那这个非静态内部类应该是属于实例而不属于类,可是外部类对象却不能访问非静态内部类的private成员,感觉有点像不能访问自已的Field一样,但通过创建一个内部类的对象却可以访问了,其实看起来这个private成员它属于内部类对象,同时也属于外部类对象啊,求大神解答一下,说下理解,最好说说就是在创建这个外部类对象的时候,有没有有为非静态内部类开辟内存进行存储。
|