Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでは何種類の匿名内部クラスが定義されていますか?


匿名の内部クラス は、クラス名なしで宣言された内部クラスです。 まったく。つまり、名前のない内部クラスは匿名の内部クラスと呼ばれます。 。名前がないため、コンストラクターを含めることはできません コンストラクター名がクラス名と同じであることがわかっているためです。

匿名の内部クラスを定義できます 新しいを使用してオブジェクトを作成します オペレーターを同時に1つのステップで実行します。

構文

new(argument-list){
   // Anonymous class body
}

Javaの匿名内部クラスのタイプ

  • クラスを拡張する匿名の内部クラス
  • インターフェースを実装する匿名の内部クラス
  • 引数としての匿名の内部クラス

クラスを拡張する匿名の内部クラス

ここに新しい キーワードは、匿名内部クラスのオブジェクトを作成するために使用されます 親クラスタイプの参照があります

class Car {
   public void engineType() {
      System.out.println("Turbo Engine");
   }
}
public class AnonymousClassDemo {
   public static void main(String args[]) {
      Car c1 = new Car();
      c1.engineType();
      Car c2 = new Car() {
         @Override
         public void engineType() {
            System.out.println("V2 Engine");
         }
      };
      c2.engineType();
   }
}

出力

Turbo Engine
V2 Engine


インターフェースを実装する匿名の内部クラス

ここに新しい キーワードは、匿名内部クラスのオブジェクトを作成するために使用されます インターフェイスタイプの参照があります

interface Software {
   public void develop();
}
public class AnonymousClassDemo1 {
   public static void main(String args[]) {
      Software s = new Software() {
         @Override
         public void develop() {
            System.out.println("Software Developed in Java");
         }
      };
      s.develop();
      System.out.println(s.getClass().getName());
   }
}

出力

Software Developed in Java
AnonymousClassDemo1$1


引数としての匿名内部クラス

匿名の内部クラスを使用できます 引数として、メソッドまたはコンストラクターに渡すことができるようにします。

abstract class Engine {
   public abstract void engineType();
}
class Vehicle {
   public void transport(Engine e) {
      e.engineType();
   }
}
public class AnonymousInnerClassDemo2 {
   public static void main(String args[]) {
      Vehicle v = new Vehicle();
      v.transport(new Engine() {
         @Override
         public void engineType() {
            System.out.println("Turbo Engine");
         }
      });
   }
}

出力

Turbo Engine

  1. JavaでのJListの選択モードの種類はいくつですか?

    JList JComponentを拡張できるコンポーネントです ユーザーが1つ以上のアイテムを選択できるようにするオブジェクトのリストを表示するために使用されるクラス。 JavaでのJListの選択モードには3つのタイプがあります ListSelectionModel.SINGLE_SELECTION :一度に選択できるリストインデックスは1つだけです。 ListSelectionModel.SINGLE_INTERVAL_SELECTION :一度に選択できる連続間隔は1つだけです。 ListSelectionModel.MULTIPLE_INTERVAL_SELEC

  2. Javaでは何種類のJDialogボックスを作成できますか?

    JDialog ダイアログのサブクラスです クラスであり、ウィンドウの右上隅にある最小化ボタンと最大化ボタンは保持されません。 Javaで2種類のJDialogボックスを作成できます モーダルダイアログ 非モーダルダイアログ モーダルJDialog Javaでは、モーダル ダイアログ ウィンドウがアクティブであり、すべてのユーザー入力がウィンドウに転送され、このモデルダイアログが閉じられるまでアプリケーションの他の部分にアクセスできません。 非モーダルJDialog Javaで、非モーダルダイアログの場合 ウィンドウがアクティブで、アプリケーションの他の部分は通常どおりアクセス可