好奇心的起因是这样的:
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
setVisible(false);//有个插曲:这不能加“this.”。加的话:就指代匿名类的新对象。
System.exit(0);
}
}
);
(在注释上方加System.out.println(this.getClass());打印结果是:XXX(包含这个代码块的类名)$1, 代表XXX中的一号匿名类)
API里WindowAdapter却是抽象类
public abstract class WindowAdapter extends Object implements WindowListener, WindowStateListener, WindowFocusListener
接收窗口事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。
最后查了一下,
这个是匿名类的语法:是用匿名类,创建了一个 继承于WindowAdapter抽象类的 对象
new WindowAdapter(){……}
这句就相当于在代码块之外写明:
“ class XXXX(匿名的无所谓) extends WindowAdapter{……}”