在Java中,嵌套类是指定义在另一个类内部的类。根据嵌套类的不同,可以分为静态嵌套类(Static Nested Class)、成员嵌套类(Member Inner Class)、局部嵌套类(Local Inner Class)和匿名嵌套类(Anonymous Inner Class)。
下面是每种嵌套类的定义和示例代码:
示例代码:
public class OuterClass {
private static int outerData = 10;
static class StaticNestedClass {
public void printData() {
System.out.println("Outer data: " + outerData);
}
}
public static void main(String[] args) {
OuterClass.StaticNestedClass nestedObj = new OuterClass.StaticNestedClass();
nestedObj.printData();
}
}
示例代码:
public class OuterClass {
private int outerData = 10;
class MemberInnerClass {
public void printData() {
System.out.println("Outer data: " + outerData);
}
}
public static void main(String[] args) {
OuterClass outerObj = new OuterClass();
OuterClass.MemberInnerClass innerObj = outerObj.new MemberInnerClass();
innerObj.printData();
}
}
示例代码:
public class OuterClass {
private int outerData = 10;
public void printData() {
class LocalInnerClass {
public void printOuterData() {
System.out.println("Outer data: " + outerData);
}
}
LocalInnerClass innerObj = new LocalInnerClass();
innerObj.printOuterData();
}
public static void main(String[] args) {
OuterClass outerObj = new OuterClass();
outerObj.printData();
}
}
示例代码:
public class OuterClass {
public void printData() {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Inner class is running");
}
};
Thread thread = new Thread(runnable);
thread.start();
}
public static void main(String[] args) {
OuterClass outerObj = new OuterClass();
outerObj.printData();
}
}
这些是Java中不同类型的嵌套类的解释和示例代码。具体选择哪种嵌套类取决于你的需求和设计。