构造方法是一个特殊的成员方法,在定义时,有以下几点需要注意:
1.构造方法的名称必须与类名一致。
2.构造方法名称前不能有任何返回值类型的声明。
3.不能在构造方法中使用return返回一个值,但是可以单独写return语句作为方法的结束。
下面通过一个案例演示构造方法的定义,如图3-5所示
图3-5:
图3-6(图3-5的运行结果):
在图3-5中,第1~5行代码定义了Student类,在类中定义了无参构造方法。在main()方法中,第11行代码实例化对象stu。从图3-6所示的程序运行结果可以发现,当调用关键字new实例化对象时,程序调用了构造方法。
在一个类中除了定义无参的构造方法外,还可以定义有参的构造方法,通过有参的构造方法可以实现对属性的赋值。
下面通过修改图3-5,演示有参构造方法的定义与调用,如图3-7所示。
图3-7:
图3-7运行结果:
由图3-7的运行结果所示,stu对象在调用read()方法时,name属性已经被赋值为张三,age属性已经被赋值为18。
构造方法的重载:
与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。在创建对象时,可以通过调用不同的构造方法为不同的属性赋值。
下面通过一个案例学习构造方法的重载,如图3-8所示。
图3-8:
图3-8运行结果:
在图3-8中,第5~11行代码声明了Student类的两个重载的构造方法。在main()方法中,第18~21行代码在创建stu1对象和stu2对象时,根据传入参数个数的不同,stu1调用了只有一个参数的构造方法;stu2调用的是有两个参数的构造方法。