java中的匿名类与本地类
时间: 2024-06-11 22:09:02 浏览: 12
匿名类和本地类都是Java中的嵌套类,即在一个类中定义另一个类。但是它们的定义和使用方式有所不同。
1. 匿名类
匿名类是一种没有名称的类,它可以在创建对象时直接定义。通常用于需要实现某个接口或抽象类的场景,可以避免创建一个单独的类。
定义方式:
```
new 接口或抽象类() {
// 实现方法
}
```
例如,实现Runnable接口可以使用匿名类:
```
Runnable r = new Runnable() {
public void run() {
System.out.println("Thread is running");
}
};
```
2. 本地类
本地类是定义在方法内部的类,只能在该方法内部使用。可以访问方法的参数和局部变量,但不能访问方法之外的变量和方法。
定义方式:
```
public void method() {
class LocalClass {
// 类的定义
}
}
```
例如,定义一个计算器类可以使用本地类:
```
public int calculate(final int a, final int b) {
class Calculator {
public int add() {
return a + b;
}
public int subtract() {
return a - b;
}
}
Calculator calculator = new Calculator();
return calculator.add();
}
```
注意:在Java 8之前,本地类中只能使用final修饰的局部变量,而Java 8之后可以使用非final变量。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)