建構物件時,資料成員會初始化,如沒指令初始值,系統會給預設值:
| 資料型態 | 初始值 |
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0F |
| double | 0.0D |
| char | \u0000 |
| boolean | false |
| 類別 | null |
一個建構子的例子,例1:
public class Some {
private int a = 10; // 指定初始值
private String text; // 預設值null
public Some(int a, String text) {
this.a = a;
this.text = text;
}
...
}
如果class裡面沒有定義任何建構子:
public class Some {
}
編譯器會自動加入一個無參數、內容為空的建構式,將這個類別編譯後的位元碼反組譯,你會看到:
public class Some {
public Some() {
}
}
這叫預設建構子(Default constructor)。如果你自己有定義建構子,一般會這樣寫:
public class Some {
public Some(int a) {
}
}
你就不能這樣建構物件:
Some S = new Some();裡面沒參數。
要這樣寫:
Some S = new Some(1);裡面要有參數。
沒有留言:
張貼留言