为什么外部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类可以访问内部类的私有成员? 的全部内容, 来源链接: utcz.com/qa/416361.html