一、什么是内部类
内部类是在一个类的内部定义的类。 它可以访问外部类的成员,包括私有成员。内部类通常用于实现功能更强大、逻辑更紧密的相关类。
二、内部类的分类
内部类可以分类为成员内部类、静态内部类、局部内部类和匿名内部类。
2.1、成员内部类
成员内部类(Member Inner Class) 是定义在另一个类的内部,作为外部类的一个成员的类。它可以访问外部类的所有成员,包括私有成员。成员内部类可以继承其他类或实现接口,并且可以被声明为静态或非静态。
使用场景:
- 封装性:当需要将一个类的实现细节隐藏起来时,可以使用成员内部类。
- 逻辑紧密性:如果某个类的功能与外部类密切相关,将其定义为内部类可以使代码结构更加清晰和易于理解。
- 访问外部类的成员:成员内部类可以直接访问外部类的所有成员,包括私有成员。
- 多态性:通过继承或实现接口,成员内部类可以实现多态性。
示例:
public class OuterClass {
private String outerField = "Outer Field";
// 成员内部类的定义
class InnerClass {
public void printOuterField() {
System.out.println("Accessing outer field: " + outerField);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass(); // 创建内部类的实例
inner