java如何访问内部类
访问内部类的方法
在Java中,内部类分为成员内部类、静态内部类、局部内部类和匿名内部类。访问方式因类型不同而异。
成员内部类的访问
成员内部类是非静态的,必须通过外部类的实例来访问。

class OuterClass {
class InnerClass {
void display() {
System.out.println("Inner class method");
}
}
}
public class Main {
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.display();
}
}
静态内部类的访问
静态内部类可以直接通过外部类名访问,无需外部类实例。

class OuterClass {
static class StaticInnerClass {
void display() {
System.out.println("Static inner class method");
}
}
}
public class Main {
public static void main(String[] args) {
OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
inner.display();
}
}
局部内部类的访问
局部内部类定义在方法或作用域内,只能在定义它的方法或作用域内使用。
class OuterClass {
void outerMethod() {
class LocalInnerClass {
void display() {
System.out.println("Local inner class method");
}
}
LocalInnerClass inner = new LocalInnerClass();
inner.display();
}
}
public class Main {
public static void main(String[] args) {
OuterClass outer = new OuterClass();
outer.outerMethod();
}
}
匿名内部类的访问
匿名内部类通常用于实现接口或继承类,直接在使用时定义。
interface Greeting {
void greet();
}
public class Main {
public static void main(String[] args) {
Greeting greeting = new Greeting() {
@Override
public void greet() {
System.out.println("Anonymous inner class greeting");
}
};
greeting.greet();
}
}
注意事项
- 成员内部类不能有静态成员,除非本身是静态的。
- 局部内部类和匿名内部类不能有访问修饰符。
- 内部类可以访问外部类的私有成员,包括私有方法和变量。






