成员内部类
成员内部类是作为外部类成员的一部分而存在的,可以拥有成员变量和方法,也可以访问外部类的成员变量和方法
public class MemberOuterClass {
private int outVar;
public class InnerClass {
public void display() {
System.out.println("内部类打印OuterClass:"+outVar);
}
}
}静态内部类
静态内部类与普通的内部类不同,它被声明为静态类,因此可以直接通过外部类来访问,不需要创建外部类的实例
public class StaticOuterClass {
private static int outerVar;
public static class InnerClass {
public void display() {
System.out.println("OuterVar: " + outerVar);
}
}
}方法内部类
方法内部类是定义在方法内部的内部类,它只能在方法内部被使用。方法内部类可以访问方法的参数和局部变量,但是这些变量必须声明为 final。
public class MethodOutClass {
public void display() {
int localVar = 10;
class InnerClass {
public void print() {
System.out.println("LocalVar: " + localVar);
}
}
InnerClass inner = new InnerClass();
inner.print();
}
}内部类实际应用
内部类在实际开发中有许多应用,以下是一些常见的用例:
- 实现接口的适配器类:内部类可以实现一个接口,并对其进行适配,从而提供更加灵活的接口调用方式。
- 实现数据结构的节点类:内部类可以作为外部类的节点类来存储数据,例如链表的节点。
- 访问外部类的私有成员:内部类可以访问外部类的私有成员,这在某些情况下可以提供更加安全的访问方式。