1.基本概念:
構造器是類中的一個特殊方法,該方法在對象實例化時被調用。構造器的用途適當對象實例化時初始化對象的成員變量。當我們要為一個類添加構造器時南無構造器名稱就必須和類的名稱一致,並且不能聲明返回值。
如我們給一個叫Student的類添加構造器:
1 /** 2 *Student類 3 */ 4 5 public class Student{ 6 public String studentName; //學生姓名 7 public int studentAge; //學生年齡 8 public String studentSex; //學生性別 9 public Student(){ 10 system.out.println("在一個無參構造器內。"); 11 studentName = "匿名"; 12 studentAge = "20"; 13 studentSex = "男"; 14 } 15 public Student(String studentName,int studentAge,String studentSex){ 16 system.out.println("在有三大參數的參構造器內。"); 17 studentName = studentName; 18 studentAge = studentAge; 19 studentSex = studentSex; 20 } 21 //類余下定義部分 22 }
當為構造器添加多個構造器時,應用了方法的重載的規則,每個構造器必須有唯一的形式參數列表(上面代碼中紅字部分就是構造器的形式參數列表),一與其他構造器相區別。
2.構造器的作用:
對象使用new關鍵字實例化時,jvm(java虛擬機)對對象分配內存,並初始化。因此,對象的成員變量值被設置為初始值。如果沒有構造器,我們就得初始化所有成員變量,以確保對象的數據是有意義的。在對象實例化是,構造器給我們提供了構造對象的幾會,以確保對象的成員變量都是有意義的數據。
3.構造器與方法的區別:
①.構造器的名稱必須與類名相同(大小寫也必須一致)。
②.構造器不能聲明返回值,也不能返回void。
4.默認構造器:
如果我們編寫一個類,但在這類中並沒有編寫構造器。這構造器用public訪問修飾符限定,沒有形式參數,且不會做任何事情。默認構造器仍然遵循構造器的規則。
如果我們為類編寫了一個或多個構造器那么系統就不會在生成默認構造器生成了。
5.構造器的調用方法:
當對象使用關鍵字 new 實例化對象時,構造器就被調用了。一個可以有多個構造器,這種情況下,要調用那個歌構造器就取決於 new 運算符所用的實際參數。
當一個類只有一個構造器時,那么就只有一種方法來初始化該類對象。如果一個類有多個個構造器時,那么對於類中的美個構造器都可以使用 new 運算符。
Student stu = new Student();
上述代碼中紫色的就是構造器的調用。可以調用構造器的唯一時機是對象唄實例化是時。