日期:2014-05-20  浏览次数:20706 次

有点奇怪的代码
aframe.addWindowListener(new   WindowAdapter()   {
                public   void   windowClosing(WindowEvent   e)   {
                    System.exit(0);
                }
            })
为什么可以在函数参数里面实现另一个函数?WindowAdapter是一个抽象类,这中写法我不知道是什么意思

------解决方案--------------------
函数的参数是一个对象,
括号里的是新生成对象的方法
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
相当于新定义的类,直接实例化了,

------解决方案--------------------
继承该抽象类,重写它的方法,这是匿名的类
------解决方案--------------------
这样哦,有点懂了。还有一个问题,有什么方法可以让非静态子类在main中new呢?
======================================================================
把类写到main所在类的外面就行了
------解决方案--------------------
匿名内置类
------解决方案--------------------
应该是定义一个匿名类去实现windowAdapter

interface a{public void aa();}
class b implements a{public void aa(){}}
addAction(new b());
再使用b去当作监听类一个意思,就是哪个类并不是可见类名的

------解决方案--------------------
匿名类