討論區快速選單
知識庫快速選單
CSSLP認證,將資安落實在軟體開發中 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
JAVA問題 求大大們幫忙解題
更改我的閱讀文章字型大小
作者 : f08954738(JamesZhan)
[ 貼文 8 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/4/18 下午 04:20:09
class Car{}
class testCare{
  public static void main(String[] args){
    Car car1 = new Car();
  }
}
在上面的程式中,new Car()是產生Car物件,並呼叫一個無參數的建構子,但是在Car類別別中並沒有一個無參數的建構子,為何上面的程式能通過javac的編譯? 我在Car類別加上了一個有參數的建構子,此時,下面的程式卻不能通過javac的編譯,為什麼?

class Car{
  public Car(double gas){
  }
}

class testCare{
  public static void main(String[] args){
    Car car1 = new Car();
  }
}

提示:問題關鍵在於「預設建構子」。
作者 : pantc328(好說) C#優秀好手貼文超過500則人氣指數超過10000點
[ 貼文 894 | 人氣 14154 | 評價 3400 | 評價/貼文 3.8 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人f08954738註記此篇回應為最佳解答 2011/4/18 下午 04:35:18
你不是說出答案了嗎?
作者 : lokanghung(KH)
[ 貼文 30 | 人氣 0 | 評價 50 | 評價/貼文 1.67 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/10/18 下午 09:28:50
其實,new後面接的是一個建構式,
new Car() 表示使用預設建構式(無參考的)。
new Car(100.123)則使用帶有1個double參數的建構式。


編譯器的行為,

無任何建構式 => 編譯器加上預設建構式。
有自訂建構式 => 編譯器"不"加上預設建構式。

這也是為何加上自訂建構式後,卻會造成無法使用預設建構式的問題。


我的教材,供您參考 ”CH08 Java建構式與初始區塊” => http://lokanghung.blogspot.com/2011/08/java-ch08.html,

相信您在學習繼承時,應該會很有幫助,
繼承後的建構式有蠻多需要注意的地方。
 板主 : Clark
 > 物件導向程式設計 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 物件導向程式設計 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
物件導向程式設計
1 Arthur 180 
2 藍色LED 150 
3 長長 100 
4 Linkin 100 
5 love seeker 100 
6 Raymond 90 
7 Nets 80 
8 nop 70 
9 Huah 70 
10 矇矇 60 
物件導向程式設計
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
3.027344E-02