| 當您在Java中定義一個類別,但沒有定義建構子時,編譯器會自動幫您產生一個預設建構子,也就是說,如果您這麼寫: public class Test {
.... } 則編譯器會自動加上預設建構子,也就是相當於這麼寫: public class Test {
public Test() { } .... } 如果您自行定義建構子,則編譯器就不會幫您加上預設建構子,所以當您這麼定義時: public class Test {
public Test(int i) { ... } .... } 則在建構時,就必須指明使用哪個建構子,簡單的說,您就不能使用以下的方式來建構: Test test = new Test();
有時會建議即使沒有用到,在定義自己的建構子的同時,也加上個沒有參數的建構子,例如: public class Test {
public Test() { } public Test(int i) { ... } .... } 另外要注意的是,在繼承時,如果您沒有使用super()指定要使用父類別的哪個建構子,則預設會尋找無參數的建構子。 預設建構子的存取權限是跟隨著類別的存取權限,例如: public class Test {
} 以上的預設建構子存取權限為public。如果是以下的話: class Test {
} 則預設建構子存取權限為default。 |