2011-04-02 78 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