我知道,你不能创建接口的对象,而是实现接口的类的对象,但是,在查看事件处理程序的教程时,我发现了以下内容:
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tf.setText("Welcome to Javatpoint.");
}
});
首先,我不知道你可以在方法的参数中构造一个对象。其次,我知道ActionListener是一个接口,那么new ActionListener
到底在做什么呢?阅读后,我得到了一个含糊的想法,即这实际上是在创建一个实现Action Listener
的新类,但这个类叫什么?我可以制作这门课的其他物品吗?最后,上述代码究竟与以下内容有何不同:
//where MyActionListener is a class that implements ActionListener
MyActionListener objectOfActionListener = new MyActionListener();
b.addActionListener(objectOfActionListener);
//and the method for actionPerformed is in the MyActionListener class
答案 0 :(得分:0)
这是实现ActionListener
接口的anonymous class。
您当然可以创建自己的显式类并实例化它,但除非您需要在多个地方重用相同的逻辑,否则它没有大的好处。