ホームページ > Java > &#&チュートリアル > Java の匿名内部クラスの目的は何ですか?

Java の匿名内部クラスの目的は何ですか?

WBOY
リリース: 2024-05-02 16:54:02
オリジナル
840 人が閲覧しました

匿名内部クラスは、コールバック メカニズムを実装し、他のコードにカスタマイズされた動作を提供するために使用される特別な内部クラスです。これらは、イベント処理、コールバック メカニズム、動的動作など、外部クラスの非抽象メソッドをオーバーライドすることによってその機能を実現します。実際には、匿名内部クラスを使用して、ボタン クリック イベント ハンドラーとコールバック関数を実装できます。

Java 匿名内部类有什么作用?

Java における匿名内部クラスの役割

匿名内部クラスは、明確なクラスを持たない Java の特別な内部クラスです。名前ですが、その外部クラスの内部クラスとして直接実装されます。匿名内部クラスは主にコールバック メカニズムを実装し、他のコードにカスタマイズされた動作を提供するために使用されます。

匿名内部クラスの作成

匿名内部クラスは、次の構文を使用して作成できます:

new OuterClass() {
    // 匿名内部类的实现
}
ログイン後にコピー

例:

// 创建一个按钮,当按下时打印"Hello World"
JButton button = new JButton() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Hello World!");
    }
};
ログイン後にコピー

Function

匿名内部クラス クラスは、外部クラスの非抽象メソッドをオーバーライドすることで次の機能を実現できます。

  • イベント処理: 匿名内部クラスは、次のようなイベント処理によく使用されます。マウスクリックイベントとキーボード入力イベントが待機します。
  • コールバック メカニズム: 匿名の内部クラスは、カスタマイズされた処理を実現するために他のコードにコールバック関数を提供できます。
  • 動的動作: 匿名の内部クラスは、特定のシナリオに従って外部クラスの動作を動的に変更できます。

実践的なケース

ケース 1: イベント処理

匿名の内部クラスを使用して、ボタン クリック イベント ハンドラーを実装します。

// 创建一个按钮
JButton button = new JButton("Click Me");

// 为按钮添加点击事件处理器
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Button clicked!");
    }
});
ログイン後にコピー

ケース 2: コールバック メカニズム

実装する必要があるコールバック メソッドを定義するインターフェイスを定義します。

interface MyCallback {
    void callback(String message);
}
ログイン後にコピー

匿名の内部クラスを使用して、コールバック メソッド:

MyCallback callback = new MyCallback() {
    @Override
    public void callback(String message) {
        System.out.println("Callback received: " + message);
    }
};
ログイン後にコピー

これで、必要に応じて

callback メソッドを呼び出すことができます:

callback.callback("Hello from callback!");
ログイン後にコピー

以上がJava の匿名内部クラスの目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート