阅读量:2
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(); } }