Java 哪个构造函数初始化变量x3?
哪个构造函数初始化变量x3 类X的默认构造函数 对象类的默认构造函数Java 哪个构造函数初始化变量x3?,java,initialization,instance-variables,Java,Initialization,Instance Variables,哪个构造函数初始化变量x3 类X的默认构造函数 对象类的默认构造函数 任何构造函数都不会设置变量x3。构造函数==Y。它也不是由对象构造函数设置的,因为它也看不到字段 虚拟机将在运行时将其设置为0。通过这种方式设置此行为可以删除冗余的初始化代码。 请参见:您将看到其默认值 由于Y扩展了X,所以当您执行新的Y时,它最终将调用X作为超类的无参数构造函数。调用构造函数X时,会将类的状态初始化为其默认值 你怎么想?为什么?x3不是instantiated@AlexandruSeverin字段总是初始化的
任何构造函数都不会设置变量x3。构造函数==Y。它也不是由对象构造函数设置的,因为它也看不到字段 虚拟机将在运行时将其设置为0。通过这种方式设置此行为可以删除冗余的初始化代码。
请参见:您将看到其默认值 由于Y扩展了X,所以当您执行新的Y时,它最终将调用X作为超类的无参数构造函数。调用构造函数X时,会将类的状态初始化为其默认值
你怎么想?为什么?x3不是instantiated@AlexandruSeverin字段总是初始化的,但不总是默认值以外的值。两个构造函数中的哪一个初始化变量x3
class X {
int x1, x2, x3;
}
class Y extends X {
int y1;
Y() {
x1 = 1;
x2 = 2;
y1 = 10;
}
}
public class Test {
public static void main(String[] args) {
Y y = new Y();
System.out.println(y.x1 + "," + y.x2 + "," + y.x3 + "," + y.y1);
}
}