toString方法

我想在Item类中添加一个toString方法,该方法返回该Item的标题。

我需要确保DVD类中的toString方法调用ItemtoString方法,以便它可以返回包含title和director的字符串。

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 = ""; } // 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); } 

}

Item toString

 public String toString() { return title; } 

DVD toString

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

另外,我不知道你要做什么,但我会把这些print()方法放在这些类中。

您最好返回字符串表示并将其打印到其他位置(使用此function,您可以在不模拟System.out情况下测试此类)

干杯

每个Java类中都定义了一个toString方法(它inheritance了ObjecttoString )。 但它会返回一个几乎没有意义的值(AFAIR,JDK中实例的内部地址/ id – 我可能错了)。

您需要做的是覆盖该方法并使其返回一个String ,该StringItem的标题。 对于DVD类,您必须覆盖toString并使其成为由标题和导演的串联组成的字符串。

对于Item类,您的方法应如下所示:

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

您应该能够使用相同的想法来实现toString for DVD。