2013-10-06 31 views
-2

我想做一個類,並在其中創建兩個構造函數。我已經創建了它,因爲我已經完成了我以前的所有類和構造函數,但由於某些原因,它一直告訴我要向兩個構造函數添加返回類型。爲什麼我在創建構造函數時被要求返回類型?

我試着看看我是否已經創建了與我以前的構造函數不同的東西,但看不到任何區別。

任何人都可以看到我要去哪裏錯了嗎?

public class Book { 

    //instance variables 
    //accessSpec type varname; 
    private String title; 
    private String author; 
    private double price; 

    //constructors 
    public initialiseInstanceFields() { 
     title = ""; 
     author = ""; 
     price = 0.00; 
    } 

    public initialiseInstanceFields(String titleIn, String authorIn, double priceIn) { 
     title = titleIn; 
     author = authorIn; 
     price = priceIn; 
    } 


    //methods 
    //accessSpec returntype varname(argList){} 
    //return the title 
    public String getTitle() { 
     return title; 
    } 

}//end class 
+2

你不只是給什麼名字你喜歡的構造函數。它必須與類名相同。 –

+0

我沒有看到任何構造函數。因爲構造函數應該和class相同。將你的類重命名爲「initialiseInstanceFields」 – Rupesh

+1

@Rupesh最好將構造函數重命名爲「Book」不是嗎? –

回答

3

構造函數必須與類名具有相同的名稱。 initialiseInstanceFields是一種常規方法,不是構造函數,因此需要返回類型。如果你希望它被視爲一個構造函數,然後使用類即名稱Book更改您的構造函數的定義重新定義爲:

public Book() 
{ 
    title = ""; 
    author = ""; 
    price = 0.00; 
} 

public Book(String titleIn, String authorIn, double priceIn) 
{ 
    title = titleIn; 
    author = authorIn; 
    price = priceIn; 
} 
+0

「應該」應該是「必須的」。 – Makoto

相關問題