Java中匿名类的两种实现方式:
1. 作为实参传递
在Java语言中,我们可以通过将一个匿名类作为实参传递给某个方法或构造方法来实现匿名类的创建和使用。
示例1:
public class AnonymousClass {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("通过匿名类创建线程");
}
});
thread.start();
}
}
上面的代码中,我们创建了一个实现Runnable接口的匿名类,并将其作为参数传递给Thread构造方法中。这样,线程就可以使用匿名类的run方法中的代码。
示例2:
public class AnonymousClass {
public void test() {
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击按钮");
}
};
JButton button = new JButton("按钮");
button.addActionListener(listener);
}
}
上面的代码中,我们创建了一个实现ActionListener接口的匿名类,并将其作为参数传递给JButton的addActionListener方法。这样,当按钮被点击时,匿名类中的 actionPerformed 方法就会被调用。
2. 作为父类派生子类
Java语言中,我们可以通过使用匿名类作为父类来派生出子类。
示例3:
public class AnonymousClass {
public static void main(String[] args) {
Animal animal = new Animal() {
@Override
public void run() {
System.out.println("狗跑得很快");
}
};
animal.run();
}
}
abstract class Animal {
public abstract void run();
}
上面的代码中,我们创建了一个继承自Animal类的匿名子类,并在匿名类中实现了run方法。这样,animal类实例化后就可以使用匿名类的run方法。
示例4:
public class AnonymousClass {
public void test() {
JFrame frame = new JFrame("示例");
// 创建一个继承自MouseAdapter的匿名子类
MouseAdapter mouseAdapter = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标被点击");
}
};
// 给JFrame注册MouseAdapter类型的监听器
frame.addMouseListener(mouseAdapter);
}
}
上面的代码中,我们创建了一个继承自MouseAdapter类的匿名子类,并在匿名类中实现了mouseClicked方法。这样,我们就可以通过将匿名类作为参数传递给JFrame的addMouseListener方法来实现鼠标点击事件的监听。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中匿名类的两种实现方式 - Python技术站