首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

内隐类为什么能调用外部类的private定义的属性,该如何解决

2012-01-03 
内隐类为什么能调用外部类的private定义的属性classtest{privateStringname good publicvoidgetName()

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

热点排行