Я заметил, что внешние классы могут обращаться к внутренним классам переменных частного экземпляра. Как это возможно? Вот пример кода, демонстрирующий то же самое:
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??
}
}
Почему такое поведение разрешено?