内隐类为什么能调用外部类的private定义的属性
class test{
private String name= "good ";
public void getName(){
}
class innerclass{
public void printName(){
System.out.println(name);
}
}
public static void main(String args[]){
test t=new test();
test.innerclass t1=t.new innerclass();
t1.printName();
}
}
private不是私有吗?只能当前类的方法访问。
为什么内部类可以访问?(我想知道原理。)
------解决方案--------------------http://blog.kaila.com.cn/user1/xuruzi/archives/2006/72686.shtml
http://www.newasp.net/tech/java/14908.html
------解决方案--------------------在内部类保留一个对外部类的引用,当在内部类中访问一个变量时,如果在内部类找不到,
它就会通过外部类的引用,到外部去查找.private是说,是在本类中可以访问的控制权限.
内部类也是外部类的一部分.也就说,内部类可是使用外部类定义的一切变量.这就是原理
吧.