1.基本概念:java
構造器是類中的一個特殊方法,該方法在對象實例化時被調用。構造器的用途適當對象實例化時初始化對象的成員變量。當咱們要爲一個類添加構造器時南無構造器名稱就必須和類的名稱一致,而且不能聲明返回值。jvm
如咱們給一個叫Student的類添加構造器:spa
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 }
當爲構造器添加多個構造器時,應用了方法的重載的規則,每一個構造器必須有惟一的形式參數列表(上面代碼中紅字部分就是構造器的形式參數列表),一與其餘構造器相區別。code
2.構造器的做用:對象
對象使用new關鍵字實例化時,jvm(java虛擬機)對對象分配內存,並初始化。所以,對象的成員變量值被設置爲初始值。若是沒有構造器,咱們就得初始化全部成員變量,以確保對象的數據是有意義的。在對象實例化是,構造器給咱們提供了構造對象的幾會,以確保對象的成員變量都是有意義的數據。blog
3.構造器與方法的區別:內存
①.構造器的名稱必須與類名相同(大小寫也必須一致)。虛擬機
②.構造器不能聲明返回值,也不能返回void。class
4.默認構造器:變量
若是咱們編寫一個類,但在這類中並無編寫構造器。這構造器用public訪問修飾符限定,沒有形式參數,且不會作任何事情。默認構造器仍然遵循構造器的規則。
若是咱們爲類編寫了一個或多個構造器那麼系統就不會在生成默認構造器生成了。
5.構造器的調用方法:
當對象使用關鍵字 new 實例化對象時,構造器就被調用了。一個能夠有多個構造器,這種狀況下,要調用那個歌構造器就取決於 new 運算符所用的實際參數。
當一個類只有一個構造器時,那麼就只有一種方法來初始化該類對象。若是一個類有多個個構造器時,那麼對於類中的美個構造器均可以使用 new 運算符。
Student stu = new Student();
上述代碼中紫色的就是構造器的調用。能夠調用構造器的惟一時機是對象唄實例化是時。