建構子﹝Constructor﹞
當建立一個 class 的實體,在初始化的時候,會呼叫建構子。
例如:
複製程式
public class Test{
private int a;
public Test(){
a = 1;
}
public static void main(String[] args){
Test test = new Test();
}
}
在 new Test() 的時候,就是建立一個 Test class 的實體,並且此實體執行了 public Test() 這個 Constructor,將變數 a 的數值設定成 1。
建構子也可以設定需要參數:
複製程式
public class Test{
private int a;
private int b;
public Test(){
}
public Test(int a,int b){
this.a = a;
this.b = b;
}
public static void main(String[] args){
Test test = new Test(1,2);
}
}
這樣子,在建立 Test 實體 class 的時候,就會設定 a 與 b 這兩個變數的值。
當你沒有寫任何 Constructor 的時候,編譯器會自動幫你產生一個最基本的,例如說:
複製程式
public class Test{
public static void main(String[] args){
Test test = new Test();
}
}
編譯器會自動補上一個 Constructor,變成:
複製程式
public class Test{
public Test(){
}
public static void main(String[] args){
Test test = new Test();
}
}
注意,若你有撰寫一個需要參數的 Constructor,但是沒有寫一個不需要參數的 Constructor,在建立這個 class 實體的時候,就一定要輸入需要的參數,不可以沒有輸入,因為編譯器若發現你有建立需要參數的 Constructor 但是沒有預設的 Constructor,他不會幫你建立。
以下是錯誤示範:
複製程式
public class Test{
private int a;
public Test(int a){
this.a = a;
}
public static void main(String[] args){
Test test = new Test();//這行不會通過編譯
}
}
以上是我的經驗,若有錯誤請指正。