javaコンパイラが他のクラスからのプライベート属性へのアクセスを制限していないのはなぜですか? 修飾子「private」を持つ属性「a」を持つ内部クラスがあります。クラス外のインスタンス変数を使用して、この変数にアクセスできます。以下のコードを参照してください。
package com.test;
public class Test {
public Test() {
}
public static void main(String[] args) {
new Test().execute(); // test method
}
public void execute() {
InnerClass innerClassInstance = new InnerClass();
// accessing private member from other class instance, HOW?
System.out.println(innerClassInstance.a);
InnerStaticClass innerStaticClassInstance = new InnerStaticClass();
// accessing private member from other class instance, HOW?
System.out.println(innerStaticClassInstance.a);
}
private final class InnerClass {
private int a; // accessible only in InnerClass??
}
private final static class InnerStaticClass {
private int a; // accessible only in InnerClass??
}
}