在java中,任何变量在被使用前必须先赋初始值,因此java就提供了个专门为尖的成员变量赋初始值 的方法——构造方法,对构造方法的称呼是不同的,有的书称它为构造器,还有的书称它为构造函数。
构造方法是一个特殊的成员方法,它的定义方式与普通的方法类似,其语法如下:
class 类名称{
访问权限 类名称(类型1 参数1,类型2 参数2,……){
程序语句:
}
}
在使用构造方法的时候注意以下几点:
1.它具有与类名相同的名称。
2.它没有返回值,也没有返回类型。
3.每个类可以有多个构造方法。
4.构造方法在创建对象时自动执行,一般不能显示地直接调用。
如果程序中没有明确声明一个构造方法的话,系统会自动为类加入一个无参且什么都不做的构造方法,这个构造方法就做无参构造方法。
类似以下代码:public Person(){} .在创建对象时,使用这个无参的构造方法为类对象的成员变量赋数据类型的默认值,如int ,double ,char等。一旦用户定义了自己的构造方法,这个无参构造方法就不能再被使用。
在java里,仅普通方法可以重载,构造方法也可以重载。只要构造方法的参数个数不同 ,或是参数类型不同,便可定义多个构造方法。但是值得注意的是构造方法不能重写,也就是子类不继承父类具有特定功能的构造方法。但是子类在继承父类的时候会自动调用父类的无参构造方法,为父类的成员赋初始值。
java 在执行子类的构造方法之前,会先调用父类中无参的构造方法,其目的是为了对继承自父类的成员做初始化的操作。当父类有数个构造方法时,如要调用特定的构造方法,则可以在子类的构造方法中,通过super()这个关键字来完成。因为父类的构造方法中传入了一个字符串变量,所以在子类调用父类的构造方法必须也得传入一个字符串或字符串变量。
构造方法不能被继承,所以子类不继承父类的构造函数,所以它只能使用默认的构造函数。(可重载)
在同一个类的不同构造方法中调用该类的其他构造方法需要使用this(……)的形式,而且必须是在构造方法的第一行调用。