0002_内部类、静态嵌套类
内部类、静态嵌套类
内部类的一个简单例子如下所示:在外部类中定义了一个非静态内部类 "InnerClass",并在该类的方法中实例化并调用了该内部类。
public class OuterClass {
private int outerVar;
public OuterClass(int var) {
outerVar = var;
}
public void printInner() {
InnerClass inner = new InnerClass();
inner.print();
}
private class InnerClass {
public void print() {
System.out.println(outerVar);
}
}
}
以上代码中的 InnerClass
即为一个非静态内部类。非静态内部类可以通过访问外部类的成员变量和方法来实现一些特殊的功能,比如实现某种接口或抽象类等。
另一个例子是静态嵌套类,我们可以将其看作一个普通的类,只不过它被定义在另一个类的内部。如下所示:
public class OuterClass {
private static int outerVar;
public static void printInner() {
StaticNestedClass.staticPrint();
}
private static class StaticNestedClass {
private static void staticPrint() {
System.out.println("Static Nested Class: " + outerVar);
}
}
}
以上代码中的 StaticNestedClass
即为一个静态嵌套类。静态嵌套类可以不依赖于外部类的实例而被单独创建和使用,可以看做是仅在外部类的命名空间内定义的一个普通类。
总之,内部类和静态嵌套类是 Java 中对类的一种特殊定义方式,它们可以用于设计方案上更细致的控制和封装。