在 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。

Java 内部静态类:不同外部类对象之间交互的影响

原文地址: https://www.cveoy.top/t/topic/pd3h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录