每次在创建实例变量,对类中的所有变量都要初始化是很乏味的。即使你对setDim ( )这样的方法增加有用的功能时,你也不得不这样做。如果在一个对象最初被创建时就把对它的设置做好,那样的话,程序将更简单并且更简明。因为对初始化的要求是共同的,Java允许对象在他们被创造时初始化自己。这种自动的初始化是通过使用构造函数来完成的。
构造函数(constructor)在对象创建时初始化。它与它的类同名,它的语法与方法类似。一旦定义了构造函数,在对象创建后,在new运算符完成前,构造函数立即自动调用。
构造函数看起来有点奇怪,因为它没有任何返回值,即使是void型的值也不返回。这是因为一个类的构造函数内隐藏的类型是它自己类的类型。构造函数的任务就是初始化一个对象的内部状态,以便使创建的实例变量能够完全初始化,可以被对象马上使用。
你可以重写Box例子程序,以便当对象创建时盒子的尺寸能被自动地初始化。为了达到这个目的,用构造函数代替setDim。让我们由定义仅仅将每个盒子的尺寸设置为同样值的一个简单的构造函数开始。示例如下:
/* Here,Box uses a constructor to initialize the
dimensions of a box.
*/
class Box {
double width;
double height;
double depth;
// This is the constructor for Box.
Box()