所有人出生后都会有姓名,有些小孩是在出生后再取姓名的,而有些小孩一出生名字就已经取好。那么在Java中如何实现在对象创建时给对象成员变量赋初值?这是通过构造函数给对象的成员变量进行初始操作来实现的。
构造函数的特点:
(1)构造函数的函数名与类名相同。
(2)构造函数没有返回值类型。
(3)构造函数是在对象建立时由Java虚拟机调用,可以通过构造函数实现给对象成员初始化。
(4)构造函数可以重载,用以进行不同的初始化。
注意:当类中没有定义构造函数时,系统会给该类加上一个无参且方法体为空的构造函数。这个是类中默认的构造函数。当类中自定义了构造函数,则默认构造函数就没有了,可以通过javap反编译命令查看是否有默认构造函数。
如下列源文件Student.java中的Student类中没有定义构造方法,但经过反编译可以看出系统给Student类加上了一个无参且方法体为空的默认构造函数,如图4.9所示。由于默认构造函数的函数体为空,未对成员变量进行初始化,所以main方法中输出对象的值分别是null和0.0,运行结果如图4.9所示。
Student.java
(www.daowen.com)
图4.9 反编译观察默认构造函数
在类中也可以自定义默认构造函数,即构造函数的参数仍然为空,在方法体中加入成员变量的初始化操作,修改Student.java中的Student类如下:
使用默认构造函数创建的对象的成员变量的值都是一样的,如果想实现创建出来的对象的属性值不一样,可以在类中加入带参数的构造函数。
【例4.9】在Student类中定义了一个无参构造函数,同时定义了一个带参数的构造函数,形成了构造函数的重载。当在主类中创建对象时,系统判断参数的个数及类型确定调用哪一个构造函数对对象的成员变量进行初始化值。
Example4_9.java
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。