Re: [問題] 請問建構子
※ 引述《DavyBlue (ArssertionError)》之銘言:
: ※ 引述《towalking (啊哈)》之銘言:
: :public Date (int m, int d, int y) //建構子其一
: : {
: : month = m;
: : day = d;
: : year = y;
: : }
: : 那我可以寫 Date birthday = new Date();
找到錯誤了,請看:
public anDate(){} //建構子其二
我另外一個建構子寫這樣…
謝謝版友提醒我了建構子名稱都應該要跟 class 名一樣
對了,這觀念就叫“多型”是吧?
: 可以
: 但是要自己在class Date中宣告一個空白建構子
: 如果一個類別中你沒有寫建構子
: 編譯時會自動產生一個預設建構子 就是空白的 像這樣
: public Date(){}
: 但是如果有宣告了建構子 就不會自動產生
嗯嗯 了解 跟 C++ 一樣
: 有需要無參數建構子的話 要自己補上
: 這在繼承上尤其重要
: 因為子類別會自動呼叫super();(在類別的第一行)
: 所以如果父類別沒寫空白建構子 編譯時就會有問題
: 以上
版友另外有說是不是要把 class 的名稱改一下(原本是 Date)
後來經過試驗,class Date 也是沒問題的,
最大的錯誤是我把另外一個空白建構子寫成 public anDate(){}。
(其實課本習題就是要我們設一個 class Date 呢)
最後想再問一個問題,
return 是不是一次只能回傳一個值呢?
public int getMonth()
{
return month;
return day;
return year;
}
這麼寫是不是不行呢?
謝謝版友們解答~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.189.37
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 5 之 7 篇):