面向对象的思考过程(原书第5版)
上QQ阅读APP看书,第一时间看更新

3.1.5 设计构造函数

我们已经看到了,设计类的一个最佳实践是初始化所有属性。有些语言中,编译器会提供一部分初始化工作。与往常一样,不要依赖编译器来初始化属性!在Java中,只有属性被初始化后你才能使用它。如果属性在代码中很靠前,请确保你初始化属性为一些有效值,比如设置整数为0。

构造函数用来确保应用程序处于稳定的状态(我喜欢称之为“安全”的状态)。例如,如果把属性作为除法运算中的分母,那么初始化该属性为0会导致应用程序崩溃。你必须考虑除法中用0作为除数是非法操作。始终初始化属性为0并不总是最好的方式。

在设计时,优秀的实践应该是为所有属性确定一个稳定的状态,然后在构造函数中初始化这些属性为稳定的状态。