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

对此总是多少有点迷惑——private关键字作用在内部类(假设为A)的成员上时,对于包含该内部类(A)的类(假设为B)来说形同虚设,如果还有一个类(假设为C)包含这个包含类(B)时,那么类A中的private对于C同样形同虚设。
下面的代码证明了这一点。个人理解是:内部类对于 包含它的类 来说毫无隐私——此处包含至少嵌套了一级。

class FirstLevel{

private class SecondLevel{
private int i=10;
private void say(){
System.out.println("private SecondLevel.say()");
}
private class ThirdLevel{
private int i=12;
private void say(){
System.out.println("private ThirdLevel.say()");
}
}
}

void haha(){
System.out.println("FirstLevel.haha() BEGIN:");
SecondLevel secondLevel=new SecondLevel();
SecondLevel.ThirdLevel thirdLevel=secondLevel.new ThirdLevel();
System.out.println("SecondLevel's private i"+secondLevel.i);
secondLevel.say();
System.out.println("ThirdLevel's private i :"+thirdLevel.i);
secondLevel.say();
System.out.println("FirstLevel.haha() END.\n");
}

public static void main(String[] arguments){
FirstLevel firstLevel=new FirstLevel();
firstLevel.haha();
FirstLevel.SecondLevel secondLevel=firstLevel.new SecondLevel();
secondLevel.say();
FirstLevel.SecondLevel.ThirdLevel thirdLevel=secondLevel.new ThirdLevel();
thirdLevel.say();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值