类可以访问它的内部类(和内部类的内部类)的所有成员

对此总是多少有点迷惑——private关键字作用在内部类(假设为A)的成员上时,对于包含该内部类(A)的类(假设为B)来说形同虚设,如果还有一个类(假设为C)包含这个包含类(B)时,那么类A中的private对于C同样形同虚设。
下面的代码证明了这一点。个人理解是:内部类对于 包含它的类 来说毫无隐私——此处包含至少嵌套了一级。
  1.    1class FirstLevel{  
  2.    2.   
  3.    3.     private class SecondLevel{  
  4.    4.         private int i=10;  
  5.    5.         private void say(){  
  6.    6.             System.out.println("private SecondLevel.say()");  
  7.    7.         }  
  8.    8.         private class ThirdLevel{  
  9.    9.             private int i=12;  
  10.   10.             private void say(){  
  11.   11.                 System.out.println("private ThirdLevel.say()");  
  12.   12.             }  
  13.   13.         }  
  14.   14.     }  
  15.   15.       
  16.   16.     void haha(){  
  17.   17.         System.out.println("FirstLevel.haha() BEGIN:");  
  18.   18.         SecondLevel secondLevel=new SecondLevel();  
  19.   19.         SecondLevel.ThirdLevel thirdLevel=secondLevel.new ThirdLevel();  
  20.   20.         System.out.println("SecondLevel's private i"+secondLevel.i);  
  21.   21.         secondLevel.say();  
  22.   22.         System.out.println("ThirdLevel's private i :"+thirdLevel.i);  
  23.   23.         secondLevel.say();  
  24.   24.         System.out.println("FirstLevel.haha() END./n");  
  25.   25.     }  
  26.   26.       
  27.   27.     public static void main(String[] arguments){  
  28.   28.         FirstLevel firstLevel=new FirstLevel();  
  29.   29.         firstLevel.haha();  
  30.   30.         FirstLevel.SecondLevel secondLevel=firstLevel.new SecondLevel();  
  31.   31.         secondLevel.say();  
  32.   32.         FirstLevel.SecondLevel.ThirdLevel thirdLevel=secondLevel.new ThirdLevel();  
  33.   33.         thirdLevel.say();  
  34.   34.     }  
  35.   35. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值