局部内部类和匿名内部类
时间: 2023-09-26 10:06:00 浏览: 124
局部内部类和匿名内部类是Java中的两种特殊类型的内部类。
局部内部类是定义在方法或者代码块内部的类。它的作用域被限定在所属的方法或代码块内部,不能在外部访问。局部内部类可以访问所属方法或代码块的局部变量,但是这些变量必须声明为final或者事实上的final(在Java 8之后,可以省略final关键字,但是不能对这些变量进行修改)。局部内部类的定义形式如下:
```java
public class OuterClass {
public void someMethod() {
final int localVar = 10;
class LocalInnerClass {
public void innerMethod() {
System.out.println(localVar);
}
}
LocalInnerClass inner = new LocalInnerClass();
inner.innerMethod();
}
}
```
匿名内部类是没有名字的内部类,它直接继承了一个父类或者实现了一个接口。通常用于创建只使用一次的简单类。匿名内部类没有构造方法,因此可以直接通过实例化后的对象进行方法调用。匿名内部类的定义形式如下:
```java
public class OuterClass {
public void someMethod() {
Thread thread = new Thread(new Runnable() {
public void run() {
System.out.println("Thread is running");
}
});
thread.start();
}
}
```
在上述代码中,我们使用匿名内部类实现了Runnable接口,并在Thread类的构造方法中传入了该匿名内部类的实例。
总结一下,局部内部类是定义在方法或代码块内部的类,它的作用域被限定在所属的方法或代码块内部;而匿名内部类是没有名字的内部类,通常用于创建只使用一次的简单类。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.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)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)