和C ++一样,如果没有用户编写的默认或参数化构造函数,Java会自动创建默认构造函数,并且(如C ++),默认构造函数会自动调用父类默认构造函数。但与C ++不同,Java中的默认构造函数将成员数据变量初始化为默认值 (数值初始化为0,布尔值被初始化为false并且引用初始化为null)。
例如,下面的程序的输出是
0
null
false
0
0.0
// Main.java
class Test {
int i;
Test t;
boolean b;
byte bt;
float ft;
}
public class Main {
public static void main(String args[]) {
Test t = new Test(); // default constructor is called.
System.out.println(t.i);
System.out.println(t.t);
System.out.println(t.b);
System.out.println(t.bt);
System.out.println(t.ft);
}
}