内部クラスのプライベートメンバーへの Java 外部クラスのアクセス
質問:
なぜ外部のクラスは、プライベートと宣言されている場合でも、内部クラスのプライベート インスタンス変数にアクセスする機能を持っています。次のコードを考えてみましょう:
class ABC { class XYZ { private int x = 10; } public static void main(String[] args) { ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: " + xx.x); // Why is this allowed? } }
答え:
Java の内部クラスは、プライベート メンバーを含む外部クラスへの固有のアクセス権を持っているため、固有です。これは、本質的に外部クラスのメンバーである内部クラスの設計によるものです。
このアクセスの背後にある理由は、内部クラスが外部クラスの機能と密接に結びついているためです。これらは、外部クラスに固有であり、スタンドアロン クラスとしては意味をなさない機能をカプセル化します。したがって、プライベート メンバーを含む外部クラスに完全にアクセスできます。
この設計により、クラス内のカプセル化とモジュール化が向上します。これにより、内部クラスが外部クラスのプライベート データを操作できるようになりますが、従来のクラス構造では不可能でした。ただし、このアクセスは内部クラスにのみ許可され、他のクラスや外部コードには許可されないことに注意することが重要です。
以上がJava で外部クラスが内部クラスのプライベート メンバーにアクセスできるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。