在 Java 中,当一个对象被创建时,它的内部类不会自动初始化。内部类只有在被访问或者实例化时才会被初始化。

当外部类被实例化时,内部类的成员变量和方法并不会被初始化。只有当内部类被访问或者实例化时,才会开始初始化内部类。这是因为内部类的初始化是惰性的,只在需要时才会进行。

以下是一个示例代码,展示了内部类的初始化过程:

public class OuterClass {
    private int outerVariable;

    public OuterClass(int outerVariable) {
        this.outerVariable = outerVariable;
    }

    public void outerMethod() {
        System.out.println('Outer method');
    }

    public class InnerClass {
        private int innerVariable;

        public InnerClass(int innerVariable) {
            this.innerVariable = innerVariable;
        }

        public void innerMethod() {
            System.out.println('Inner method');
        }
    }

    public static void main(String[] args) {
        OuterClass outerObj = new OuterClass(10);

        // 内部类的实例化
        InnerClass innerObj = outerObj.new InnerClass(20);
        
        // 内部类的访问和调用
        innerObj.innerMethod();
    }
}

在上述代码中,当我们创建OuterClass对象时,内部类InnerClass并不会被初始化。而当我们通过outerObj.new InnerClass(20)实例化内部类时,才会开始初始化内部类。然后我们可以通过内部类的实例innerObj来访问和调用内部类的方法。

总结来说,Java 中的内部类会在被访问或者实例化时才会被初始化。

Java 对象创建时,内部类是否初始化?

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

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