この記事では、Java内部クラスオブジェクトの作成とフックメカニズムについて説明します。次のように、参照のために共有してください。
Javaの内部クラスは、状態情報の周辺クラス(内部クラスインスタンスを介して直接機能を実行できます)に完全に独立していますが、周辺クラスオブジェクトは内部クラスオブジェクトの存在の基礎です。
内部クラスのオブジェクトを生成するときは、javaが内部クラスオブジェクトを生成するための厳格な構文を提供するように、周辺クラスオブジェクトをフックすることができるようにする必要があります。
通常、内部クラスオブジェクトを生成するために使用される2つの方法があります。
方法1:周辺クラスinstance.new内部クラス名()を使用した標準メソッド。
例1:
パブリッククラスの外側{int no;クラスの内側は、Interfacea {}}インターフェイスInterfacea {} main(){outer instancea = new outer(); interfacea interfacea = instancea.new inner();内部クラス名()。これの目的は、内部クラスインスタンスに周辺クラスインスタンスフックを必要とすることです。InterfaceaInterfaceB= instancea.new outer(); //内部クラスの別のインスタンスが生成され、インスタンスインスタンスにも添付されています。 }方法2 :工場メソッドを使用して、特定のインターフェイスを実装するオブジェクトを直接返します(オブジェクトは通常、内部クラスです)。
例1:
パブリッククラスの外側{int no;クラスの内部はinterfacea {} public interfacea createinnerstance {return interfacea {read(); }}} interface interfacea {public void read();} main(){outer instancea = new outer(); interfacea interfacea = instancea.createinnerinstance(); Interfacea interfaceb = instancea.createinnerinstance(); //内部クラスの新しいインスタンスが生成され、インスタンスInstanceaにも添付されています。 }インスタンス名.Newクラス名()を使用する方法と比較して、工場の方法はよりエレガントで明確に見えます。
!内部クラスの使用シナリオに注意してください。一般に、特定のインターフェイス関数を外部に実装し、対応する操作を実行する内部クラスオブジェクトを返すことです。 (周辺クラスのメンバーは内部クラスに完全に見えるため、その利便性と利点は非常に明白です)
コンパイラは、内側のクラスオブジェクトが生成されたときに周辺クラスインスタンス情報を自動的にキャプチャするため、Javaは周辺クラスインスタンスを呼び戻すこの方法も提供します(この方法は非常に重要な場合があります)。
例:
パブリッククラスの外側{class inenter {public outer callback(){return outer.this} // callback()メソッドは、構文の周辺クラス名を使用して、内側のクラスオブジェクトフックの周辺クラスオブジェクトへの参照を返します。 }}Java関連のコンテンツを増やすために、このサイトに興味のある読者は、「Javaオブジェクト指向プログラミングに関する紹介と高度なチュートリアル」、「Javaデータ構造とアルゴリズムに関するチュートリアル」、Java Operation domノードスキルの要約」、「Javaファイルの概要、およびJava操作スキルの概要」の概要を見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。