2014-10-26 109 views
-1

我是新來的Java,並已設置了一些任務來完成,到目前爲止,我已經完成了如下圖所示的第一部分:設置和獲取方法 - Java的

「1.設計一個類手冊具有以下屬性:

序列號 - 字符串 - 默認:??????

標題 - 字符串 - 默認:無題

作者 - 字符串 - 默認:未知

編寫一個構造函數和一個方法來在控制檯上打印手冊的詳細信息。 「

代碼:

public class Manual { 

    String serialNumber, title, author; 

    public static void main(String [] args){ 
     Manual man= new Manual(); 
     man.printDetails(); 
    } 

    public Manual(){ 
     serialNumber = "??????"; 
     title = "Untitled"; 
     author = "Unknown"; 
    } 

    public void printDetails(){ 
     System.out.println("Serial Number = " +serialNumber+" Title = "+ title+" Author = "+author);} 



} 

在接下來的部分,我已經要求:

」 2。通過編寫以下額外的方法修改你的手冊類:方法來設置和獲取手冊

方法的性質要求用戶進行手動

一個toString()方法的細節。 「

到目前爲止,我已經嘗試了部分的設定& get方法的一部分,我的代碼如下:

public class Manual { 

    String serialNumber, title, author; 

    public static void main(String [] args){ 
     Manual man= new Manual(); 
     man.printDetails(); 
    } 

    public Manual(){ 
     serialNumber = "??????"; 
     title = "Untitled"; 
     author = "Unknown"; 
    } 

    public String getserialNumber(){ 
     return serialNumber; 
    } 

    public String gettitle(){ 
     return title; 
    } 

    public String getauthor(){ 
     return author; 
    } 

    public void setserialNumber(String serialNumber){ 
     serialNumber = ??????; 
    } 

    public void settitle(String title){ 
     title = Untitled; 
    } 

    public void author(String author){ 
     author = Unknown; 
    } 

    public void printDetails(){ 
     System.out.println("Serial Number = " +serialNumber+" Title = "+ title+" Author = "+author);} 



} 

會有人能夠告訴我閹我迄今的代碼是正確的&如果需要做任何更改此外,任何協助的下一個任務的幫助將不勝感激

謝謝

+0

您可以在編碼中提出具體問題,而不是一般問題。你不能指望在stackoverflow的人爲你的任務編寫完整的代碼。如果您的代碼中存在錯誤,並且找不到或無法在線找到解決方案,那麼您一定會得到幫助。 – 2014-10-26 21:45:56

+0

那麼,問題是什麼?除了它甚至不會編譯的事實。提示:作者「setter」中的'author = Unknown'應該是'this.author = author'。對於初學者來說,'Unknown'是一個未知的標識符。其次,參數變量會遮蔽實例成員變量,這就是爲什麼'this.'很重要。其他「制定者」也適用相同的修改。最後,與成員變量'author'和方法'author'有衝突。 – user2864740 2014-10-26 21:46:12

+0

@ArslanAli我沒有期待任何人爲我做這項工作。我只是簡單地確保我的工作都清楚地顯示出來以避免混淆,但我只是在接下來的任務中尋求幫助,作爲建議的邀請,而不是回答 – 05K3 2014-10-26 21:49:36

回答

0

你在正確的軌道上。我可以看到你對制定者感到困惑。標題,作者和序列號是整個班級都可以訪問的變量,因此在你的設置者中,你可以直接將值放入其中。在你的setter的參數中,你應該有一個不同於這些變量名稱的名字。例如:

public void setTitle(String t) 
{ 
    title = t; 
} 

該函數將通過其參數(字符串t)傳遞一個字符串,並將該值放在標題內。現在,你將默認值放入變量設置器,這是不正確的。默認值是針對默認構造函數的,這是您正確執行的。爲了幫助您瞭解更多一點,我給你的你的測試類可能看起來像一個例子:

Manual myManual = new Manual(); //now that the Manual Object has been instantiated, 
           //the variables contain the default values from your 
           //default constructor. 

myManual.setTitle("Some Title"); //"Some Title" was passed through the parameters of the 
           //setTitle method, and the title variable in Manual is equal 
           //that value 

在一個側面說明,你總是可以大寫單詞的開頭的第一個字以下的方法,變量等的setTitle,getAuthor等稱號


編輯:

第一個代碼段是你的制定者應該是什麼樣子的手工課。你應該改變你的所有設置器的格式。所有評論的第二行將在主要方法中。

而且,我看着你的代碼引擎收錄,你仍然是你的制定者設定的變量的默認值。這是不正確的。您應該將變量設置爲通過參數傳遞的參數。

+0

感謝您的回覆,我試圖做出建議的更改,這裏是我更新的代碼:http://pastebin.com/FC2hg4H7 - 對不起,如果仍然有錯誤,林不知道我做了什麼是正確的:( – 05K3 2014-10-26 22:05:15

+0

另外,我將在哪裏實現您的代碼片段示例?在手冊類中? – 05K3 2014-10-26 22:19:03

+0

我編輯了我的評論。 – user2130057 2014-10-26 22:44:47

0

這是不正確的。

  1. 您的方法名稱不遵循方法命名規則,因爲它們不是camelCase。
  2. 有一個方法'作者'設置作者。它應該是:'setAuthor'。
  3. 'settitle'和'author'方法中的'未知'是什麼?

你甚至試過編譯它嗎?!

1

嗯,我不認爲你的代碼編譯!? getters/setters的目的是改變(設置)或GET對象。 你的二傳手應該要麼是這樣的:

public void setTitle(String title){ 
     this.title = title; 
} 

或本:

public void setTitle(String anotherVariableName){ 
     title = anotherVariableName; 
} 
+0

感謝您的回覆,我對建議的方法進行了建議更改。當我運行代碼時,這是打印到控制檯:「序列號= ??????標題=無標題作者=未知 」是由於我已設置「作者=未知」或來自上面的代碼中我定義了變量並添加了一個打印方法? – 05K3 2014-10-26 21:55:34

+0

您沒有定義任何變量。你知道一個二傳手應該做什麼嗎?它將參數分配給類變量。什麼是作者=未知應該做的?按照我上面的建議編輯所有的設置器。 – Bene 2014-10-26 22:02:08

+0

不是在我發佈的頂部設置的變量嗎? author = unknown是作者的默認值,直到用戶輸入新作者(下一階段)爲止我已經更新了我的setter,如下所示,現在我的代碼如下所示:http://pastebin.com/FC2hg4H7 – 05K3 2014-10-26 22:07:59