Re: [問題] 建構子的呼叫

看板java作者 (Alien)時間18年前 (2007/12/04 00:00), 編輯推噓4(401)
留言5則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《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

12/04 10:54, , 1F
這應該是正解了,就是不要那樣寫就ok了
12/04 10:54, 1F

12/04 10:56, , 2F
而且因為不變字串,你的+=" world"也是沒有意義的
12/04 10:56, 2F

12/04 16:26, , 3F
不變字串所以 +=" world" 沒有意義,這....
12/04 16:26, 3F

12/05 21:56, , 4F
謝拉..解答了我的疑惑,原本那樣寫是不可行的
12/05 21:56, 4F

12/17 23:23, , 5F
title是null,compiler會讓你過嗎?
12/17 23:23, 5F
文章代碼(AID): #17L2WWkM (java)
討論串 (同標題文章)
文章代碼(AID): #17L2WWkM (java)