3

我今天看到这样的事情:

    frame.addWindowListener(new WindowAdapter() {

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

以下部分是什么意思?

new AClass(){ this part }

我可以“扩展”并内联创建此类的新实例吗?

google了一下,不知道叫什么= =

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

它只是一个匿名内部类,当您只打算使用该接口实现一次时它很有用,它可能非常有用,否则您将不得不为此创建一个完整的类。

于 2011-07-02T23:07:54.450 回答
1

它被称为匿名类。

于 2011-07-02T22:58:38.020 回答