作者adrianshum (Alien)
看板java
標題Re: [問題] 建構子的呼叫
時間Tue Dec 4 00:00:31 2007
※ 引述《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