下面先看看 Employee 类的构造器:
可以看到,构造器与类同名。构造Emplyee 类的对象时,构造器会运行,这会将实例字段初始化为所希望的初始状态。
(资料图片)
例如,使用下面这个代码创建Emplyee 类的一个实例时:
将如下设置实例字段:
构造器与其他方法有一个重要的不同。构造器总是结合new 操作符来调用。不能对一个已经存在的对象调用构造器来重新设置实例字段。例如,
将产生编译错误。
本章稍后还会更详细地介绍有关构造器的内容。现在只需要记住:
构造器与类同名
每个类可以有一个以上的构造器
构造器可以有0-n个参数
构造器没有返回值
构造器总是结合new 操作符一起调用
C++ 注释: Java 中构造器的工作方法与C++ 相同。但是,要记住所有Java对象都是在堆中构造的,构造器总是结合 new 操作符一起使用。C++ 程序员最容易犯得错误是忘记 new 操作符:
Emplyee number007("James Bond",100000,1950,1,1) ; // C++, not Java
这条语句在C++ 中能够正常运行,但在Java中却不行。
警告: 请注意,不要引入与实例字段同名的局部变量。例如,下面的构造器将不会设置name 或 salary 实例字段
这个构造器声明了局部变量 name 和salary 。这些变量只能在构造器内部访问,他们会遮蔽(shadow)同名的实例字段。有些程序员偶尔会不假思索地写出这类代码,因为他们的手指会不自觉地增加数据类型。这种错误很难检查出来,因此,必须注意在所有的方法中都不要使用与实例字段同名的变量。