В Java внутренний класс может обращаться к закрытым членам включающего класса. Но может ли внешний класс получить доступ к закрытым членам внутреннего класса? Это не зависит от того, является ли внутренний класс статическим или нет. Я думал, что это не так, но следующий код, кажется, компилируется и работает нормально.
public class Outer {
class Inner {
private int i = 0;
private Inner() {}
}
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner oi = o.new Inner();
oi.i = 10;
}
}