在下面的构造函数中,我只初始化了两个变量,而一些变量未显式初始化。
正如我所读到的,如果构造函数是由我们提供的,编译器不会创建参数构造函数。那么在这种情况下,由于我有自己的构造函数,所以没有初始化变量 p 和 q 的默认构造函数。
所以,逻辑应该是如果我们尝试访问那些未初始化的变量,那么它应该是编译时错误。但是,下面的代码运行成功。
输出为 5 10 0.0 0.0
我们如何解释输出 0.0 和 0.0 因为我没有在构造函数中声明它们?
public class Rectangle {
int l, b;
double p, q;
public Rectangle(int x, int y) {
l = x;
b = y;
}
public static void main(String[] args) {
Rectangle obj1= new Rectangle(5,10);
System.out.println(obj1.l);
System.out.println(obj1.b);
System.out.println(obj1.p);
System.out.println(obj1.q);
}
}