Java でネストされた 2 つのクラスが、互いのプライベート メンバーにアクセスできることがわかりました。これはなぜですか?それはバグですか、それともこれは標準で指定されているものですか?
次のコードは、エラーなしでコンパイルおよび実行されます。
public class Main {
public static void main(String args[]) {
A a = new A();
a.var1 = 12;
B b = new B();
System.out.println(a.var1);
b.printA(a);
}
private static class A {
private int var1;
}
private static class B {
private int var2;
public void printA(A a) {
// B accesses A's private variable
System.out.println(a.var1);
}
}
}