私有静态嵌套类不遵循private限制?为何可在外部类中访问
问题解答
这是因为Java里的私有访问权限作用域是整个顶级外部类,而非直接包含它的外层类。
具体到你的代码:
nested是first的私有静态嵌套类,但first本身属于顶级类hi的静态内部类- 所有在顶级类
hi内部的代码(包括first类,以及hi自己的main方法)都处于同一个私有访问域内,所以hi的main方法完全可以直接实例化并调用first.nested的方法
换个直白的说法:顶级类hi就像一个封闭的房间,房间里不管套了多少层小盒子(嵌套类),只要在这个房间里,里面的东西都能互相访问,哪怕小盒子上标了“私有”——这个“私有”只是针对房间外面的代码而已。
内容的提问来源于stack exchange,提问作者de_coding_life
相关产品推荐
相关产品推荐

