前のセクションでは内部クラスについて学びましたが、このセクションでは匿名クラスについて学びます。では、匿名クラスとは何でしょうか?名前が示すように、匿名クラスは名前を持つことができず、作成時に新しいステートメントでのみ宣言できます。
匿名の内部クラスを使用するには、親クラスを継承するか、インターフェイスを実装する必要があります。
注意すべき点は次のとおりです。
1) 匿名内部クラスではコンストラクターを定義できません。
2) 匿名内部クラスには静的メンバー変数と静的メソッドを含めることはできません。
3) 匿名内部クラスはローカル内部クラスであるため、ローカル内部クラスに対するすべての制限は匿名内部クラスにも適用されます。
匿名クラスの構文形式は次のとおりです。
classouterClass{//匿名クラスを定義します object1=newType(parameterList){//匿名クラス コード};}
注: 匿名クラスは式の形式で定義されるため、セミコロンで終わります。
例えば:
classDotcpp{publicvoiddisplay(){System.out.println (Dotcpp クラス内);}}classAnonymousDemo{publicvoidcreateClass(){///作成された匿名クラスは Dotcpp クラスを継承します Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out. println(匿名クラス内);}};d1.display();}}classMain{publicstaticvoidmain(String[]args){AnonymousDemoan=newAnonymousDemo();an.createClass();}}
実行結果は次のとおりです。
匿名クラス内
例えば:
interfaceDotcpp{publicvoiddisplay();}classAnonymousDemo{publicvoidcreateClass(){//作成された匿名クラスは、Dotcpp インターフェイス Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out.println (匿名クラス内);}};d1 を実装します。 display();}}classMain{publicstaticvoidmain(String[]args){AnonymousDemoan=newAnonymousDemo();an.createClass();}}
実行結果は次のとおりです。
匿名クラス内
皆さんもコンピューターで実験して、このセクションの内容を消化して吸収してください。