看板 java 關於我們 聯絡資訊
※ 引述《nf7series (真呆)》之銘言: : 不好意思阿,問題好多 : public class Hello : { : String title; : int value; : public Hello() : { : title+=" world"; : } : public Hello(int value) : { : this.value=value; : title="hello"; : Hello(); //錯誤發生 : } : public static void main(String[] args) : { : Hello c=new Hello(5); : System.out.println(c.title); : } : } : 上面的code會在 Hello()出錯,可是我看書裡面有寫建構子是可以被建構子呼叫的, : 我猜想若要呼叫建構子,必須用this(),可是this要放在該函式裡面的第一行 : 但....如果我程式要的結果是如上面所寫,先將title變成hello,才去呼叫Hello() : 那該怎麼辦呢? 那就不要寫這樣的 logic 呀. class Hello { private int value; private String title; public Hello(int value, String title) { this.value = value; this.title = title; } public Hello(int value) { this(value, "Hello " + title); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.77.27.47
maxi326:這應該是正解了,就是不要那樣寫就ok了 12/04 10:54
maxi326:而且因為不變字串,你的+=" world"也是沒有意義的 12/04 10:56
H45:不變字串所以 +=" world" 沒有意義,這.... 12/04 16:26
nf7series:謝拉..解答了我的疑惑,原本那樣寫是不可行的 12/05 21:56
amitofo:title是null,compiler會讓你過嗎? 12/17 23:23