java内部类的实现方法是什么
Java内部类的实现方法有以下几种:
- 成员内部类:将一个类定义在另一个类的内部,作为外部类的成员。成员内部类可以访问外部类的成员变量和方法,包括私有成员。
public class OuterClass {
private int outerVar;
public class InnerClass {
public void innerMethod() {
outerVar = 10; // 访问外部类的成员变量
outerMethod(); // 访问外部类的方法
}
}
public void outerMethod() {
// ...
}
}
- 静态内部类:与成员内部类相比,静态内部类没有对外部类的引用,可以直接创建静态内部类的实例,不需要先创建外部类的实例。
public class OuterClass {
private static int outerVar;
public static class InnerClass {
public void innerMethod() {
outerVar = 10; // 访问外部类的静态成员变量
outerMethod(); // 访问外部类的静态方法
}
}
public static void outerMethod() {
// ...
}
}
- 方法内部类:将一个类定义在方法内部,作为方法的局部变量。方法内部类只能在方法内部访问,不能在方法外部访问。
public class OuterClass {
public void outerMethod() {
class InnerClass {
public void innerMethod() {
// ...
}
}
InnerClass inner = new InnerClass();
inner.innerMethod();
}
}
- 匿名内部类:没有名字的内部类,用于创建一个实现某个接口或继承某个类的匿名对象。通常在创建对象时直接定义并实现接口或继承类的方法。
public class OuterClass {
public void outerMethod() {
Runnable runnable = new Runnable() {
@Override
public void run() {
// ...
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}