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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值