📜  Java本地内部类(1)

📅  最后修改于: 2023-12-03 14:43:01.531000             🧑  作者: Mango

Java本地内部类

Java本地内部类又称为方法内部类,是定义在方法或代码块内部的类。与成员内部类不同,本地内部类只在其所在的代码块中可见,包括方法、构造函数、初始化块或语句块。本地内部类可以访问其外部类及方法中的变量和方法,但这些变量和方法必须为final或隐式为final(即不可修改)。

特点
  • 只能在定义它的方法内部使用。
  • 不可以被public、private、protected和static等修饰。
  • 可以访问外部类和方法中的变量和方法,但这些变量和方法必须为final或隐式为final。
语法
class OuterClass {
    // ...
    void someMethod() {
        class LocalInnerClass {
            // ...
        }
        // 实例化本地内部类
        LocalInnerClass lic = new LocalInnerClass();
    }
}
示例
public class LocalInnerClassExample {
    static String message = "Hello world";
	
    public static void main(String[] args) {
        class HelloWorld {
            public void display() {
                System.out.println(message);
            }
        }
        HelloWorld hello = new HelloWorld();
        hello.display();
    }
}

在上面的示例中,我们定义了一个名为LocalInnerClassExample的类,其中包含了一个名为main的静态方法。在main方法中,我们定义了一个名为HelloWorld的本地内部类,该类包含了一个名为display的方法,该方法用于输出一个字符串。最后,我们实例化本地内部类,并调用它的display方法来输出字符串。

注意事项
  • 本地内部类在方法中实例化后,只能在该方法中使用,不能在该方法外的其他方法中使用。
  • 本地内部类和方法中的变量和方法必须为final或隐式为final,因此,在定义本地内部类时,应该将外部类和方法中的变量和方法声明为final。