私は、囲んでいるクラスのプライベートメンバーにアクセスすることについて多くの質問を見てきました。しかし、私の質問は反対です。
私が(例として)持っている場合、次のコード:
public class A {
private String outerString = "silly string";
static class B {
private final A someA = new A();
public void foo() {
String b = someA.outerString ;
}
}
}
なぜこれがコンパイルされるのか疑問に思いますか?クラスAから(someA.outerStringを介して)'outerString'インスタンス変数にアクセスする方法により、エラーが予想されました。内部クラスは、暗黙の「this」参照によって、囲んでいるクラスメンバーに直接アクセスできることを知っています。ただし、ここでは、クラスBは静的であるため、「this」参照は適用されません。