3.构造方法
2025年09月21日
3.构造方法
类在设计的时候,会提供一种特殊的方法,叫作构造方法。例如,
构造方法与其他的成员方法不同的地方如下。
(1)方法名和类名完全相同(大小写也和类名相同)。
(2)没有方法返回值,void也不要写。
(3)构造方法并不是给类的引用者显式调用的。在创建类的对象的时候,会自动调用类的构造方法。由于是在对象创建的时候调用的,所以构造方法的执行内容一般是对象成员变量的初始化。
(4)当类定义没有提供构造方法时,系统会自动添加一个无参的构造方法;当类定义已经提供了构造方法时,系统就不会再添加无参构造方法了。
例如,提供了有参构造方法后,如果没有提供无参构造方法,系统不会再自动添加无参构造方法,这就造成“Rectangle rectangle=new Rectangle();”这句话会编译出错,因为这句话需要调用无参构造方法。在一般的情况下,类定义的时候,会提供无参和有参的多种重载构造方法,如代码15.3的第5行到第11行。
【代码15.3】添加了构造方法的Rectangle类
在通常情况下,构造方法和setter()/getter()方法的定义格式比较固定,在Eclipse主菜单“源码”中“使用字段生成构造函数”来生成无参或有参构造方法,如图3.15.2所示。
图3.15.2 利用Eclipse生成构造方法
如图3.15.3所示,利用Eclipse主菜单“源码”中的“生成Getter和Setter”来生成getter()/setter()方法。选择所有的属性,为所有的成员变量生成getter()/setter()方法(也可以只选择部分的属性)。
图3.15.3 利用Eclipse生成getter()/setter()方法
重载