Java核心技术卷I基础知识(原书第9版)
上QQ阅读APP看书,第一时间看更新

4.6.3 无参数的构造器

很多类都包含一个无参数的构造函数,对象由无参数构造函数创建时,其状态会设置为适当的默认值。例如,以下是Employee类的无参数构造函数:

如果在编写一个类时没有编写构造器,那么系统就会提供一个无参数构造器。这个构造器将所有的实例域设置为默认值。于是,实例域中的数值型数据设置为0、布尔型数据设置为false、所有对象变量将设置为null。

如果类中提供了至少一个构造器,但是没有提供无参数的构造器,则在构造对象时如果没有提供参数就会被视为不合法。例如,在程序清单4-2中的Employee类提供了一个简单的构造器:

对于这个类,构造默认的雇员属于不合法。也就是,调用

将会产生错误。

警告:请记住,仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。如果在编写类的时候,给出了一个构造器,哪怕是很简单的,要想让这个类的用户能够采用下列方式构造实例:

就必须提供一个默认的构造器(即不带参数的构造器)。当然,如果希望所有域被赋予默认值,可以采用下列格式: