java 如何调用内部类的方法调用
调用内部类方法的步骤
实例化外部类对象
需要先创建外部类的实例,因为非静态内部类依赖于外部类的实例存在。例如:
OuterClass outerObj = new OuterClass();
通过外部类实例创建内部类实例
通过外部类对象使用 new 关键字实例化内部类:
OuterClass.InnerClass innerObj = outerObj.new InnerClass();
调用内部类方法
通过内部类实例直接调用其方法:
innerObj.innerMethod();
静态内部类的方法调用
直接实例化静态内部类
静态内部类不依赖外部类实例,可直接通过外部类名访问:
OuterClass.StaticInnerClass staticInnerObj = new OuterClass.StaticInnerClass();
调用静态内部类方法
通过静态内部类实例调用方法:
staticInnerObj.staticInnerMethod();
匿名内部类的方法调用
在创建时直接调用方法
匿名内部类通常在实例化时通过接口或父类实现,并可直接调用方法:
new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类方法");
}
}.run();
局部内部类的方法调用
在定义的作用域内实例化并调用
局部内部类需在其定义的代码块(如方法内)中实例化和调用:
public void outerMethod() {
class LocalInnerClass {
void localInnerMethod() {
System.out.println("局部内部类方法");
}
}
LocalInnerClass localObj = new LocalInnerClass();
localObj.localInnerMethod();
}
注意事项
- 非静态内部类不能脱离外部类实例独立存在,必须通过外部类对象创建。
- 静态内部类可直接实例化,但无法直接访问外部类的非静态成员。
- 匿名内部类和局部内部类的作用域受限,需在定义范围内使用。







