メンバクラスは他のメンバクラスの private フィールドを参照できる
JLS2 6.6.1, 8.3 より。
class InnerPrivateField { class Inner1 { private int i; } class Inner2 { int test() { Inner1 obj = new Inner1(); return obj.i; // OK } } }
この例の場合、Inner1 クラスの privateフィールド i のスコープは外側のクラスである InnerPrivateField クラス全体である。