和C ++一样,如果没有用户编写的默认或参数化构造函数,Java会自动创建默认构造函数,并且(如C ++),默认构造函数会自动调用父类默认构造函数。但与C ++不同,Java中的默认构造函数将成员数据变量初始化为默认值 (数值初始化为0,布尔值被初始化为false并且引用初始化为null)。
例如,下面的程序的输出是
// 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); } }
输出是:
0 null false 0 0.0