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

4.6.2 默认域初始化

如果在构造器中没有显式地给域赋予初值,那么就会被自动地赋为默认值:数值为0、布尔值为false、对象引用为null。然而,只有缺少程序设计经验的人才会这样做。确实,如果不明确地对域进行初始化,就会影响程序代码的可读性。

注释:这是域与局部变量的主要不同点。必须明确地初始化方法中的局部变量。但是,如果没有初始化类中的域,将会被初始化为默认值(0、false或null)。

例如,仔细看一下Employee类。假定没有在构造器中对某些域进行初始化,就会默认地将salary域初始化为0,将name、hireDay域初始化为null。

但是,这并不是一种良好的编程习惯。如果此时调用getName方法或getHireDay方法,则会得到一个null引用,这应该不是我们所希望的结果: