Java 局部内部类

17 Mar 2025 | 阅读 2 分钟

在 Java 中,在方法内部创建的类称为局部内部类。 局部内部类是在块内部定义的内部类。 通常,这个块是一个方法体。 有时这个块可以是一个 for 循环或一个 if 子句。 局部内部类不是任何封闭类的成员。 它们属于定义它们所在的块,因此局部内部类不能具有与其关联的任何访问修饰符。 但是,它们可以标记为 final 或 abstract。 这些类可以访问封闭它的类的字段。

如果要调用局部内部类的方法,必须在此方法中实例化该类。

Java 局部内部类示例

LocalInner1.java

立即测试

输出

30

编译器生成的内部类

在这种情况下,编译器会创建一个名为 Simple$1Local 的类,该类具有外部类的引用。

规则:局部变量不能是 private、public 或 protected。

Java 局部内部类的规则

1) 无法从方法外部调用局部内部类。

2) 在 JDK 1.7 之前,局部内部类无法访问非 final 局部变量。 从 JDK 1.8 开始,可以在局部内部类中访问非 final 局部变量。

带有局部变量的局部内部类示例

LocalInner2.java

立即测试

输出

50

下一个主题静态嵌套类