首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >toString方法

toString方法
EN

Stack Overflow用户
提问于 2011-04-02 21:29:59
回答 2查看 2.9K关注 0票数 0

我想在Item类中添加一个toString方法,用于返回其中项目的标题。

我需要确保DVD类中的toString方法调用Item中的toString方法,以便它可以返回同时包含标题和导演的字符串。

Item是超类,DVD是子类。

代码语言:javascript
复制
  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);
}

}

代码语言:javascript
复制
 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);
}

}

EN

回答 2

Stack Overflow用户

发布于 2011-04-02 21:34:15

项目toString

代码语言:javascript
复制
public String toString()
{
  return title;
}

DVD toString

代码语言:javascript
复制
public String toString()
{
  return super.toString() + " director: " + director;
}

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

您最好返回字符串表示并将其打印到其他地方(这样您就可以在不模拟System.out的情况下测试这个类)。

干杯

票数 6
EN

Stack Overflow用户

发布于 2011-04-02 21:38:38

在每个Java类中已经定义了一个toString方法(它继承了ObjecttoString )。但是它将返回一个实际上没有意义的值(当然,JDK -I中的实例的内部地址/id可能是错误的)。

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

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

代码语言:javascript
复制
public String toString(){
   return this.title;
}

您应该能够使用相同的思想来实现用于DVD的toString

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5523447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档