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不是私有吗?只能当前类的方法访问。
为什么内部类可以访问?(我想知道原理。)

解决方案 »

  1.   

    http://blog.kaila.com.cn/user1/xuruzi/archives/2006/72686.shtml
    http://www.newasp.net/tech/java/14908.html
      

  2.   

    在内部类保留一个对外部类的引用,当在内部类中访问一个变量时,如果在内部类找不到,
    它就会通过外部类的引用,到外部去查找.private是说,是在本类中可以访问的控制权限.
    内部类也是外部类的一部分.也就说,内部类可是使用外部类定义的一切变量.这就是原理
    吧.