内部クラスから外部クラス オブジェクトへのアクセス
Java では、プライベート変数にアクセスできる内部クラスを作成できます。およびそれらを囲む外部クラスのメソッド。ただし、内部クラス自体から外部クラス オブジェクトにアクセスするのは少し難しい場合があります。
これを実現するために、内部クラスは、OuterClass.this 構文を利用できます。この式は、内部クラス オブジェクトを作成した外部クラスの特定のインスタンスを参照します。これにより、内部クラスが外部クラスのメンバーにアクセスし、外部クラスのメソッドを呼び出すことができます。
// InnerClass.java
public class InnerClass {
private String name = "Peakit";
publicアウタークラスのアウター() {
return OuterClass.this;
}
}
提供されたコード スニペットでは、内部クラス InnerClass に、OuterClass のインスタンスを返すメソッド external() があります。このメソッドを使用すると、内部クラス内から外部クラス オブジェクトを取得できます:
//OuterClass.java
public class innerClass {
public static void main(String[] args) {
OuterClass outer = new OuterClass(); InnerClass inner = outer.new InnerClass(); OuterClass anotherOuter = inner.outer(); if (anotherOuter == outer) { System.out.println("Was able to reach out to the outer object via inner !!"); } else { System.out.println("No luck :-( "); }
}
}
この例では、outer() メソッドは外部クラスを返します。インスタンスは、anotherOuter 変数に割り当てられます。 anotherOuter と external が同じオブジェクトを参照している場合、外部クラスのオブジェクトが内部クラス内から正常に取得されたことを示します。
OuterClass.this 構文は内部クラス自体内でのみアクセスできることに注意してください。 。内部クラスを制御してそのコードを変更できない場合、内部クラス オブジェクトから外部クラス オブジェクトを直接取得する他に方法はありません。
以上がJava 内部クラス内から外部クラス オブジェクトにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。