Почему я могу получить доступ к закрытым членам ссылки на класс
Я видел много вопросов о доступе к закрытым членам окружающего класса. Однако мой вопрос противоположен.
Если у меня есть (в качестве примера) следующий код:
public class A {
private String outerString = "silly string";
static class B {
private final A someA = new A();
public void foo() {
String b = someA.outerString ;
}
}
}
Мне интересно, почему это компилируется? Я ожидал бы ошибку в силу способа доступа к «externalString». переменная экземпляра из класса A (через someA.outerString). Я знаю, что внутренний класс может получить доступ к членам включающего класса напрямую с помощью неявного «this» ссылка. Но здесь класс B является статическим, поэтому «this» ссылка не применима.