问题:
为什么外部 Java 类可以访问内部类私有成员?以下代码片段演示了这种行为:
class ABC { class XYZ { private int x = 10; } public static void main(String... args) { ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: " + xx.x); // Why is this allowed? } }
答案:
Java 中的嵌套类继承其封闭类的权限。具体来说,内部类可以访问外部类的:
此行为允许内部类封装与外部类密切相关的功能,但将其分开可读性和维护目的。
内部类本质上是外部类的成员,使它们能够访问其成员,包括那些标记为私有的成员。授予此访问权限是因为内部类:
因此,上面的代码片段是有效的,因为内部类XYZ 可以访问外部类 ABC 的私有成员 x,因为它们密切相关并封装在同一个类声明中。
以上是为什么外部Java类可以访问内部类私有成员?的详细内容。更多信息请关注PHP中文网其他相关文章!