Java的内部类是一种定义在另一个类内部的类。它可以分为以下几种类型:
1. 成员内部类(Non-static Inner Class):定义在另一个类的非静态成员内部,可以访问外部类的所有成员(包括私有成员)。
2. 静态内部类(Static Inner Class):定义在另一个类的静态成员内部,可以访问外部类的静态成员,但不能访问外部类的非静态成员。
3. 局部内部类(Local Inner Class):定义在方法内部,只能在该方法内部使用。
4. 匿名内部类(Anonymous Inner Class):没有名字的内部类,通常用于实现接口或继承类。
以下是内部类的一些特点:
内部类可以访问外部类的所有成员,包括私有成员。
内部类对象隐式持有外部类对象的引用。
内部类可以访问外部类的局部变量,前提是这些变量是final的。
以下是一个成员内部类的示例:
```java
public class OuterClass {
private int outerField = 10;
public class InnerClass {
public void display() {
System.out.println("OuterField: " + outerField);