Java 内部静态类:不同外部类对象之间交互的影响
在 Java 中,内部静态类(Inner Static Class)是一个嵌套在外部类中的静态类。它与外部类的实例对象没有直接的关联,因此不会互相影响。无论外部类的实例对象如何操作内部静态类,都不会影响其他外部类实例对象中的该内部静态类。
这是因为内部静态类在加载时就已经与外部类解耦了,它的生命周期与外部类的实例对象无关。每个外部类实例对象都有自己的状态和行为,而静态类是与类本身相关联的,不受实例对象的影响。
例如,假设有一个外部类 A 和一个内部静态类 B。无论创建多少个 A 的实例对象,它们都会共享同一个 B 类的实例。当一个 A 的实例对象修改 B 类的状态时,其他 A 的实例对象中的 B 类不会受到影响。
以下是一个示例代码:
public class OuterClass {
private static int staticVariable = 0;
public static class InnerStaticClass {
public void incrementVariable() {
staticVariable++;
}
public int getVariable() {
return staticVariable;
}
}
public static void main(String[] args) {
OuterClass outer1 = new OuterClass();
OuterClass outer2 = new OuterClass();
InnerStaticClass inner1 = new InnerStaticClass();
InnerStaticClass inner2 = new InnerStaticClass();
inner1.incrementVariable();
inner2.incrementVariable();
System.out.println(inner1.getVariable()); // 输出: 2
System.out.println(inner2.getVariable()); // 输出: 2
}
}
在上述示例中,两个外部类的实例对象 outer1 和 outer2 创建了各自的内部静态类 inner1 和 inner2。当 inner1 和 inner2 分别调用 incrementVariable() 方法时,它们都会共享同一个 staticVariable 变量,结果会同时被修改。因此,输出结果为 2。
原文地址: https://www.cveoy.top/t/topic/pd3h 著作权归作者所有。请勿转载和采集!