3

私は今日このようなものを見ました:

    frame.addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

次の部分はどういう意味ですか?

new AClass(){ this part }

このクラスの新しいインスタンスをインラインで「拡張」して作成できますか?

私はそれをググってみましたが、それがどのように呼ばれていたのかわかりませんでした= /

PS:Java=pの学習

4

4 に答える 4

3

これは「匿名クラス」と呼ばれます...名前を付けることなく、インターフェイスを実装するか、既存のクラス (通常は抽象的な「アダプター」または「ヘルパー」クラス) を拡張する簡単な方法です。

Swing コードで一般的に見られます... ウィンドウとマウスのリスナーを実装します。

これは、(額面通りに) このトピックに関するまともな議論のように見えます: http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html

乾杯。キース。

于 2011-07-02T23:05:53.157 に答える
2

ボヘミアンの答えに追加するには、このようなことをするのと同じです

class MyWindowAdapter extends WindowAdapter() {

        @Overide 
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
}

frame.addWindowListener(new MyWindowAdapter());
于 2011-07-02T23:05:08.513 に答える
2

これは単なる匿名の内部クラスです。そのインターフェイスの実装を 1 回だけ使用する場合に便利です。それ以外の場合は、そのためだけにクラス全体を作成する必要があるため、非常に便利です。

于 2011-07-02T23:07:54.450 に答える
1

これは匿名クラスと呼ばれます。

于 2011-07-02T22:58:38.020 に答える