-4

我有一个类类型的数组,用于存储视频(不是真实的,只是对象)。每个视频都有标题和作者。视频的数据集使用如下设置方法:

 public class Clip {

 private String title;
 private String author;

     public void setTitle (String s1) {

        title = s1;

    }

     public void setAuthor (String s2) {

        title = s2;

    }

然后我有一个不同的类来创建数组并使用这些设置方法来输入数据。然后程序要求用户从数组中选择一个元素,例如用户选择元素 [3]。现在程序必须打印该元素(视频)的标题和作者。

这是我不知道该怎么做的部分?我可以帮忙吗?

4

8 回答 8

2

覆盖 toString() 然后简单地调用

System.out.println(element[3])

如果您在创建 toString 方法时需要帮助,eclipse 可以向您展示它是如何完成的。

按 Alt+Shift+S 然后 S ,或右键单击 -> 源 -> 生成 toString()

于 2013-10-18T10:47:10.467 回答
1

您对 Clip 类的实现是错误的。它应该是这样的:

public class Clip {
        private String title;
        private String author;

        public Clip(String title, String author) {
            this.title = title;
            this.author = author;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getAuthor() {
            return author;
        }

        public void setAuthor(String author) {
            this.author = author;
        }
    }

您可以像这样从数组中检索对象:

@Test
    public void testClipArray() throws Exception {
        // Lets assume our array contains 2 elements
        Clip[] clipArray = new Clip[2];
        clipArray[0] = new Clip("First", "Clip");
        clipArray[1] = new Clip("Second", "Clip");

        // Lets retrieve 2nd object (with index: 1)
        Clip secondObject = clipArray[1];

        System.out.println(secondObject.getAuthor());
        System.out.println(secondObject.getTitle());
    }
于 2013-10-18T10:50:16.240 回答
0

基本上你有两个选择:

  1. 在视频类中创建吸气剂,例如public String getTitle() { return title; }
  2. 覆盖toString函数以输出您想要的值,例如

    @Override public String toString() { return "Author: " + author + ", Title: " + title"; }

于 2013-10-18T10:48:48.123 回答
0
public class Clip {

private String title;
private String author;

 public void setTitle (String s1) {

    title = s1;

}

 public void setAuthor (String s2) {

    author = s2;

}

@Override
public String toString(){
    return author + ": " + title;
}
于 2013-10-18T10:49:20.660 回答
0

重写 Clip 的 toString 方法。每次调用 print*(例如 println)方法都会调用对象的 toString 方法。

    @Override
    public String toString() {
        return "[Title: " + this.title +", Author: " + this.author + "]";
    }

覆盖方法后的示例:

    Clip clip1 = new Clip();
    Clip clip2 = new Clip();
    Clip[] clipArray = {clip1, clip2};

    for (Clip clip : clipArray) {
        System.out.println(clip);
    }
于 2013-10-18T10:49:30.003 回答
0

请覆盖 Clip 类的 toString() 如下

@Override
public String toString() {
     return "Title:"+ this.s1 + "  Author:" + this.s2;
}


Then print the Title and Author by using the below code.
System.out.println(objectClip.toString());
于 2013-10-18T10:49:38.657 回答
0

重写 Clip 类中的 toString() 方法,如下所示,

 @override
   public String toString(){ 

    return "Title: "+ title +"  ,author"+author;

   }

和调用代码调用以下语句,

System.out.println(element[3]);
于 2013-10-18T10:51:22.740 回答
0

覆盖 Clip 类的 toString() 方法。例如,

public class Clip {

    private String title;
    private String author;

    public void setTitle (String s1) {
        title = s1;
    }

    public void setAuthor (String s2) {
        title = s2;
    }

    @Override
    public String toString() {
        return title + " by " + author;
    }
}

然后按如下方式打印剪辑数组:

for (Clip aClip : arrayOfClips) {
    System.out.println(aClip);
}
于 2013-10-18T10:51:31.230 回答