java如何调用内部类
调用静态内部类
静态内部类(Static Nested Class)可以直接通过外部类名访问,无需依赖外部类实例。

OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
调用成员内部类
成员内部类(Member Inner Class)必须通过外部类实例创建。

OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
调用局部内部类
局部内部类(Local Inner Class)定义在方法或作用域内,只能在定义它的块中实例化。
public class OuterClass {
void method() {
class LocalInnerClass {
// 类定义
}
LocalInnerClass localObj = new LocalInnerClass();
}
}
调用匿名内部类
匿名内部类(Anonymous Inner Class)通常用于实现接口或继承类,直接通过 new 关键字创建。
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Anonymous inner class");
}
};
注意事项
- 静态内部类不能直接访问外部类的非静态成员。
- 成员内部类会隐式持有外部类的引用,可能引发内存泄漏。
- 局部内部类和匿名内部类访问的局部变量必须是
final或等效不可变(Java 8+ 隐式final)。






