Java对象构造--默认字段初始化
如果在构造器中没有显式地为字段设置初值,那么就会被自动地赋为默认值: 数值为0、布尔值为false对象引用为null。有些人认为依赖默认值 的做法是一种不好的编程实践。确实,如果不明确地对字段进行初始化,就会影响程序代码的可读性。
注:这是字段与局部变量的一个重要区别。方法中的局部变量必须明确地初始化。但在类中,如果没有初始化类中的字段,将会自动初始化为默认值(0、false或null)。
例如,考虑Employee类。假定没有在构造器中指定如何初始化某些字段,默认情况下,就会将salary字段初始化为0,将name和hireDay字段初始化为null. 但是,这并不是一个好主意。如果此时调用getName方法或getHireDy方法,就会得到一个null引用,这应该不是我们所希望的结果:
LocalDate h = harry.getHireDay(); int year = h.getYear(); // throws exception if h is null