当在 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() 方法,它输出了一些信息,包括访问外部类的成员变量和方法,以及局部变量。

请注意,局部内部类的作用域仅限于定义它的方法或代码块内部。因此,除了定义它的方法或代码块内部,无法在其他地方访问局部内部类。