Iちょうど内部クラスは次のように別の内部クラスのプライベートメンバにアクセスできることを発見した:TestInner2のなぜ内部クラスは別の内部クラスのプライベートメンバーにアクセスできますか?
public class TestOutter {
class TestInner1 {
private int mInt = 1;
}
class TestInner2 {
public int foo(TestInner1 value) {
return value.mInt;
}
}
}
メソッドfooがTestInner1のプライベートメンバミントにアクセスすることができます。
しかし、私はこれまでにこのケースを見たことがありません。私はTestInner2
のコードにTestInner1のプライベートメンバーにアクセスできるという意味を知らない。
Googleの内部クラスについて検索しましたが、検索結果の中に内部クラスにこの機能がないことがわかりました。また、The Java Language Specificationも参照していますが、それについては言及していません。
"外側"のクラス定義内のすべてがプライベートメンバーにアクセスできます。 – jtahlborn
あなたはこの質問を参照することができますhttp://stackoverflow.com/questions/1801718/why-can-outer-java-classes-access-inner-class-private-members?lq=1 – san
なぜこの論理はあなたに悪いですか? 'TestInner2'は' TestOutter'の不可欠な部分であり、 'TestOutter'は' TestInner1'へのアクセス権を持っているので 'TestInner2'もそうです。それは私にとってはうまくいくようです。 –