2011-04-02 67 views
0

我想在Item類返回該項目的冠軍在那裏添加toString方法。toString方法

我需要確保在DVD類toString方法調用toString方法Item以便它可以返回一個包含標題和導演的字符串。

Item是超和DVD是子類。

public class Item 
    { 
    private String title; 
    private int playingTime; 
    private boolean gotIt; 
    private String comment; 

public Item(String theTitle, int time) 
{ 
    title = theTitle; 
    playingTime = time; 
    gotIt = false; 
    comment = "<no comment>"; 
} 

// Getters and setters omitted 

public void print() 
{ 
    System.out.print(title + " (" + playingTime + " mins)"); 
    if(gotIt) { 
     System.out.println("*"); 
    } else { 
     System.out.println(); 
    } 
    System.out.println(" " + comment); 
} 

}

public class DVD extends Item 
{ 
private String director; 

public DVD(String theTitle, String theDirector, int time) 
{ 
    super(theTitle, time); 
    director = theDirector; 
} 

// Getters and setters omitted 

public void print() 
{ 
    System.out.println(" director: " + director); 
} 

}

+0

我改寫的問題,以使其更具可讀性,請隨時回滾,如果這不是你的意思。 – 2011-04-02 13:38:38

+0

如果這是家庭作業,請將其標記爲這樣 – 2011-04-02 15:19:03

回答

6

項目toString

public String toString() 
{ 
    return title; 
} 

DVD toString

public String toString() 
{ 
    return super.toString() + " director: " + director; 
} 

另外,我不知道你想這個做什麼,但我會把這些類的print()方法。

你會(無嘲諷System.out有了這個,你可以測試這個類)

乾杯

2

一個toString方法在每個Java類中已經定義返回字符串表示並打印在別的地方的更好(它繼承ObjecttoString)。但是它會返回一個實際上沒有意義的值(AFAIR,JDK中的實例的內部地址/ ID - 我可能是錯的)。

您需要做的是覆蓋該方法並使其返回Item的標題String。對於DVD類,您必須覆蓋toString並使其成爲由標題和導演串聯組成的字符串。

對於Item類,你的方法應該是這個樣子:

public String toString(){ 
    return this.title; 
} 

您應該能夠使用相同的想法落實爲toString DVD。

+0

這個答案是不完整的 – 2011-04-02 13:41:46

+1

@Pablo費爾南德斯:我不想只是張貼代碼和手在溶液中。這看起來太像一個家庭作業。我已經發布瞭如何完成並提供了示例代碼。 OP可以使用它來編寫他的解決方案。但是,如果我只是發佈代碼,大多數作業提問者只會使用它,而不會學習任何東西。這一點是有爭議的,因爲你的答案已經提供了代碼。 – MAK 2011-04-02 13:46:06

+0

@MAK這個問題沒有被標記爲家庭作業。這是一個問答網站,如果想PO的教程,他肯定會發現它在其他地方 – 2011-04-02 14:29:14