当在 Java 中定义局部内部类时,内部类被声明在方法内部或代码块内部,并且只能在该方法或代码块内部使用。以下是一个简单的 Java 代码示例,展示了如何定义和使用局部内部类:
public class OuterClass {
private int outerData;
public void outerMethod() {
final int localVar = 5; // 局部变量
// 局部内部类
class LocalInnerClass {
private int innerData;
public void innerMethod() {
System.out.println("Inner method");
System.out.println("Accessing outerData: " + outerData);
System.out.println("Accessing localVar: " + localVar);
}
}
// 创建局部内部类的实例
LocalInnerClass inner = new LocalInnerClass();
inner.innerData = 10;
inner.innerMethod();
}
public static void main(String[] args) {
OuterClass outer = new OuterClass();
outer.outerData = 20;
outer.outerMethod();
}
}
在上面的示例中,OuterClass
是外部类,LocalInnerClass
是局部内部类。在 outerMethod()
方法中,我们定义了一个名为 LocalInnerClass
的局部内部类。该内部类具有一个私有的整数成员变量 innerData
和一个公共方法 innerMethod()
。请注意,内部类可以访问外部类的成员变量 outerData
和方法 outerMethod()
,以及方法内的局部变量 localVar
(需要声明为最终或实际上是最终的)。
在 outerMethod()
方法中,我们首先定义了一个局部变量 localVar
,然后在方法内部创建了局部内部类的实例 inner
。最后,通过内部类的实例调用了 innerMethod()
方法,它输出了一些信息,包括访问外部类的成员变量和方法,以及局部变量。
请注意,局部内部类的作用域仅限于定义它的方法或代码块内部。因此,除了定义它的方法或代码块内部,无法在其他地方访问局部内部类。