可以。 Java语言规范里只说了外部类可以访问内部类的private/protected成员,内部类也可以访问外部类的private/protected成员,但是没有规定死要如何实现这种访问。 JVM规范则在大多数时候把每个类都看作等价于top-level的,也就是说JVM不关心外部类和内部类之间的嵌套关系。**对JVM来说,enclosing class和inner class在大部分情况下都是“不相关的两个类”,视为一个包中的两个类,所以它们之间相互是不能访问对方的private/protected成员的。** 但是在实现中,衔接Java语言规范与JVM规范的就是Java源码级编译器(例如javac、ECJ等)。简单来说就是在外部类/内部类之间要访问对方的private/protected成员时,Java源码级编译器**会生成合适的“access method”**来提供合适的可访问性,这样就绕开了原本的成员的可访问性不足的问题。 综上,内部类private变量可被外部类直接访问,这由Java源码级编译器在编译过程中实现。

相关推荐

选钝角的小学生很热爱...:佬,今天收到的嘛?我三面结束二十天了,没人联系😅。请问你base哪里啊
点赞 评论 收藏
分享
09-15 15:53
Java
Elastic90:我看到的是东软的人在耐心回应,而那位实习生跟在发疯似的
投递东软集团等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务