Java 内部类详解:类型、特性与应用
内部类是定义在另一个类(外部类)中的类,作为外部类的一部分,它可以将逻辑相关的类组织在一起,并通过访问控制隐藏实现细节。内部类不仅能访问外部类的所有成员(包括私有成员),还能对其他类隐藏自身,是 Java 面向对象设计中灵活且强大的特性。
内部类的核心作用
- 访问外部类私有成员:内部类可直接访问外部类的所有成员(包括
private修饰的属性和方法),无需特殊权限。 - 实现隐藏:内部类可被声明为
private或protected,仅外部类或其子类可见,对其他类隐藏。 - 逻辑内聚:将仅被外部类使用的辅助类定义为内部类,增强代码的模块化和可读性。
- 多实现灵活性:一个类可通过多个内部类实现同一接口的不同版本,解决单继承限制。
内部类的四种类型
根据定义位置和修饰符的不同,内部类分为四类:成员内部类、局部内部类、匿名内部类、静态内部类,各有不同的特性和适用场景。
成员内部类(Member Inner Class)
成员内部类是定义在外部类的成员位置(与属性、方法同级)的内部类,可视为外部类的 “成员变量”,具有以下特性:
核心特性:
- 依赖外部类实例:必须通过外部类实例才能创建成员内部类对象,无法独立存在。
- 访问权限修饰符:可被
public、protected、private或默认修饰符修饰,控制其可见性。 - 无静态成员:成员内部类中不能定义静态属性、静态方法或静态内部类(编译报错)。
- 访问外部类成员:可直接访问外部类的所有成员(包括私有成员),通过隐式引用关联外部类实例。