toString方法
我想在Item
类中添加一个toString
方法,该方法返回该Item
的标题。
我需要确保DVD
类中的toString
方法调用Item
的toString
方法,以便它可以返回包含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了Object
的toString
)。 但它会返回一个几乎没有意义的值(AFAIR,JDK中实例的内部地址/ id – 我可能错了)。
您需要做的是覆盖该方法并使其返回一个String
,该String
是Item
的标题。 对于DVD类,您必须覆盖toString
并使其成为由标题和导演的串联组成的字符串。
对于Item
类,您的方法应如下所示:
public String toString(){ return this.title; }
您应该能够使用相同的想法来实现toString
for DVD。