爲什麼要構造無參構造函數

一個類 被實例化 也就是被new的時候 最先執行的是 構造函數,如果你有留心。你會發現很多類裏面根本沒有寫構造函數。
在java類中,如果不顯示聲明構造函數,JVM 會給該類一個默認的構造函數。一個類 可以有多個構造函數。構造函數的主要作用 一是用來實例化該類。二是 讓該類實例化的時候執行哪些方法,初始化哪些屬性。當一個類聲明瞭構造函數以後,JVM 是不會再給該類分配默認的構造函數。
比如一個實體類
public class entity{
private int id;
private String userName;
get…set..方法
}
如果這樣寫該類就是默認的構造函數。該類實例化的時候 id 和 username 就是默認值 即 id=0,username=null.
如果在裏面加入這樣一個方法
public entity(int id,String userName){
調用get..set..
}
如果這樣寫 該類實例化的時候 必須給出 id 和username參數。 JVM不會再給這個類默認構造函數
你也可以理解成 在沒有給構造函數的時候 JVM 給你的類加了一個這樣的函數
public entity(){
this.id=0;
this.userName=null;
}
其實構造函數是用來對一個類以及變量進行實例化。
構造方法,在new對象的時候就會自己調用,也是對象的初始方法,如果你自己不寫構造方法默認的會自動加上一個無參的構造。如果不存在構造方法那也就創建不了類的實例。
public class Test {
private String name;
private String sex;
private String age;
public Test(){
super();
}
public Test(String name){
this.name=name;
}
public Test(String name,String sex){
this.name=name;
this.sex=sex;
}
public Test(String name,String sex,String age){
this.name=name;
this.sex=sex;
this.age=age;
}
}
上面寫了一個簡單的類,一共有四個構造方法,這樣你就有四種方法構造類實例(對象)
new Test();
new Test(“張三”);
new Test(“張三”,”男”);
new Test(“張三”,”男”,”16”);
有了構造,也就相應提供了初始方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章