匿名内部类能干什么,举例子
时间: 2023-07-26 15:14:24 浏览: 58
匿名内部类是一种没有名字的内部类,它可以在创建对象时直接定义类的实现,并且只能使用一次。匿名内部类通常用于实现某个接口或者继承某个类,它可以使代码更加简洁,避免定义大量的类和方法。
以下是匿名内部类的一些使用场景和例子:
1.实现接口:使用匿名内部类可以直接实现某个接口,并且在创建对象时定义接口的实现。例如:
```
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello, world!");
}
};
new Thread(runnable).start();
```
在上面的例子中,我们通过创建一个匿名内部类来实现Runnable接口,并且在创建Thread对象时直接将这个内部类作为参数传递进去。
2.继承类:使用匿名内部类还可以直接继承某个类,并且在创建对象时定义类的实现。例如:
```
JButton button = new JButton("Click me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked");
}
});
```
在上面的例子中,我们通过创建一个匿名内部类来继承ActionListener类,并且在添加按钮的点击事件时直接将这个内部类作为参数传递进去。
需要注意的是,匿名内部类只能使用一次,如果需要多次使用相同的实现,则需要定义一个单独的类或者方法来实现。此外,匿名内部类虽然可以简化代码,但是也会增加代码的复杂度和可读性,因此需要根据实际情况进行选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)