【发布时间】:2020-08-23 19:32:46
【问题描述】:
请考虑以下代码 sn-p。
public class HelloWorld{
private static class InnerA{
private int _a;
private InnerA( int a ){
_a = a;
}
private int getA(){
return _a;
}
}
private static class InnerB{
private InnerB(){
InnerA inner_a = new InnerA( 1 ); //isn't the constructor of InnerA private??
System.out.println( inner_a.getA() ); //isn't getA() a private function of InnerA??
}
}
public static void main(String []args){
InnerB b = new InnerB();
}
}
我的问题是:
InnerA的构造函数被标记为私有,但是为什么从InnerB的构造函数内部调用成功呢?为什么
getA()是InnerA的私有方法可以被调用 从内部InnerB?我认为将方法标记为私有 会阻止它在InnerA之外使用?
【问题讨论】:
标签: java access-modifiers