規(guī)則
- 構(gòu)造方法沒(méi)有返回值(不能使用void)愕掏,但內(nèi)部可以使用rutern(以結(jié)束方法)前方;
- 構(gòu)造方法的方法名必須與類名一樣滓侍;
- 構(gòu)造方法也有訪問(wèn)控制符蒋川、參數(shù)列表和方法體;
- 同時(shí)具備以上條件撩笆,一個(gè)方法才是構(gòu)造方法
實(shí)例代碼:
public class Car {
int speed;
String color;
String name;
String direction;
public Car() {
}
}
在如上代碼中捺球,Car類中有一個(gè)public Car構(gòu)造方法。
構(gòu)造方法的使用
java語(yǔ)法規(guī)定夕冲,一個(gè)類可以有多個(gè)構(gòu)造方法祖秒,至少有一個(gè)構(gòu)造方法袄简。在一個(gè)類沒(méi)有任何構(gòu)造方法時(shí)霜威,java編譯器會(huì)給這個(gè)類增加一個(gè)默認(rèn)什么都不做的構(gòu)造方法旱物。
除了默認(rèn)構(gòu)造方法外,可以給Car類一個(gè)有實(shí)際意義的構(gòu)造方法醉冤,如下代碼所示:
public class Car {
int speed;
String color;
String name;
String direction;
public Car() {
}
public Car(String p_name,String p_color) {
//構(gòu)造方法秩霍,用來(lái)初始化汽車(chē)名字和顏色
this.name=p_name;
this,color=p_color;
}
}
上面實(shí)例代碼Car類中有兩個(gè)構(gòu)造方法篙悯,他們的關(guān)系是重載蚁阳。下面給出調(diào)用構(gòu)造方法的例子:
public class TestCarConstructor {
public static void main(String[] args) {
Car anotherCar = new Car("閃電號(hào)","銀色")
System.out.print("汽車(chē)的名字為:")
System.out.println(anotherCar.name)
System.out.print("汽車(chē)的顏色為")
System.out.print(anotherCar.color)
}
}
運(yùn)行以上代碼,輸出如下:
汽車(chē)的名字為:閃電號(hào)
汽車(chē)的顏色為:銀色
創(chuàng)建一個(gè)對(duì)象的過(guò)程:
在遇到new關(guān)鍵字的時(shí)候鸽照,java會(huì)創(chuàng)建出這個(gè)new后面緊跟的類的一個(gè)對(duì)象螺捐。然后,java根據(jù)緊跟在類后面的參數(shù)列表去調(diào)用相應(yīng)的構(gòu)造方法矮燎。
應(yīng)注意:構(gòu)造方法可以調(diào)用普通方法定血,普通方法不能調(diào)用構(gòu)造方法。
其他注意事項(xiàng):
- 留個(gè)無(wú)參數(shù)的構(gòu)造方法诞外,并在這個(gè)方法中給重要屬性賦初始值澜沟,是個(gè)好習(xí)慣
- 編譯器在編譯一個(gè)類的時(shí)候,只有在那個(gè)類沒(méi)有任何構(gòu)造方法時(shí)峡谊,才會(huì)給一個(gè)類添加一個(gè)空的茫虽、什么都不做的構(gòu)造方法刊苍。
- 在類的每一個(gè)構(gòu)造方法中都給類的重要屬性賦初始值是個(gè)好習(xí)慣