日期:2014-05-20  浏览次数:20838 次

内隐类为什么能调用外部类的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是说,是在本类中可以访问的控制权限.
内部类也是外部类的一部分.也就说,内部类可是使用外部类定义的一切变量.这就是原理
吧.