Java 对象创建时,内部类是否初始化?
在 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 中的内部类会在被访问或者实例化时才会被初始化。
原文地址: https://www.cveoy.top/t/topic/pdSZ 著作权归作者所有。请勿转载和采集!