(1)構(gòu)造方法名稱與類名相同娃循,沒(méi)有返回值聲明( 包括void)(2)構(gòu)造方法用于初始化數(shù)據(jù)(屬性)
(3)每一個(gè)類中都會(huì)有一一個(gè)默認(rèn)的無(wú)參的構(gòu)造方法
(4)如果類中有顯示的構(gòu)造方法挫剑,那么默認(rèn)構(gòu)造方法將無(wú)效
(5)如果有顯示的構(gòu)造方法徘六,還想保留默認(rèn)構(gòu)造方法,需要顯示的寫出來(lái)抖僵。
(6)構(gòu)造方法可以有多個(gè)立倍,但參數(shù)不一樣,稱為構(gòu)造方法的重載
(7)在構(gòu)造方法中調(diào)用另一個(gè)構(gòu)造方法为肮,使用this(..),該句代碼必須在第一句。
(8)構(gòu)造方法之間的調(diào)用肤京,必須要有出口弥锄。
(9)給對(duì)象初始化數(shù)據(jù)可以使用構(gòu)造方法或setter方法,通常情況下蟆沫,兩者都會(huì)保留。
(10)一個(gè)好的編程習(xí)慣是要保留默認(rèn)的構(gòu)造方法温治。 (為了方便--些框架代碼使用反射來(lái)創(chuàng)建對(duì)象)
(11) private Dog(){ }饭庞,構(gòu)造方法私有化,當(dāng)我們的需求是為了保正該類只有一一個(gè)對(duì)象時(shí)熬荆。
什么時(shí)候一個(gè)類只需要一一個(gè)對(duì)象?比如舟山,工具類(沒(méi)有屬性的類,只有行為)并且該工具對(duì)象被頻繁使用卤恳。權(quán)衡只用一一個(gè)對(duì)象與產(chǎn)生多個(gè)對(duì)象的內(nèi)存使用累盗,來(lái)確定該類是否要定義為只需要一一個(gè)對(duì)象。
/**
構(gòu)造方法:構(gòu)造方法是在類中定義的突琳,構(gòu)造方法的定義格式:方法名稱與類名相同若债,無(wú)返回值類型的聲明
1.構(gòu)造方法就是類構(gòu)造對(duì)象時(shí)調(diào)用的方法,用于對(duì)象的初始化
2.構(gòu)造方法是實(shí)例化一個(gè)類的對(duì)象時(shí)拆融,也就是new的時(shí)候蠢琳,最先調(diào)用的方法
*/
public class Test3{
public static void main(String[]args){
Dog dog = new Dog();
Dog dog1 = new Dog("小白",5);
}
}
class Dog{
//默認(rèn)構(gòu)造方法,通常有其他構(gòu)造方法時(shí)镜豹,要保留默認(rèn)構(gòu)造方法
public Dog(){
System.out.println("構(gòu)造方法執(zhí)行了");
}
public Dog(String name){
this.name = name;
System.out.println("帶一個(gè)參數(shù)的構(gòu)造方法執(zhí)行了");
}
public Dog(String name,int age){
this(name);//調(diào)用其他構(gòu)造方法時(shí)傲须,此語(yǔ)句需要在第一句,在構(gòu)造方法相互調(diào)用時(shí)必須要有出口
//this.name = name;
this.age =age;
System.out.println("帶兩個(gè)參數(shù)的構(gòu)造方法執(zhí)行了");
}
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}