Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中从数组打印特定元素的数据_Java_Arrays_Class - Fatal编程技术网

在java中从数组打印特定元素的数据

在java中从数组打印特定元素的数据,java,arrays,class,Java,Arrays,Class,我有一个类类型的数组,用于存储视频(不是真实的视频,只是对象)。 每个视频都有一个标题和作者。 视频的数据集使用以下集合方法: public class Clip { private String title; private String author; public void setTitle (String s1) { title = s1; } public void setAuthor (String s2) {

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

 public class Clip {

 private String title;
 private String author;

     public void setTitle (String s1) {

        title = s1;

    }

     public void setAuthor (String s2) {

        title = s2;

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

这是我不知道该怎么做的部分? 能给我一些帮助吗

重写toString(),然后只需调用

System.out.println(element[3])
如果您需要创建toString方法的帮助,eclipse可以向您展示它是如何完成的


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

基本上您有两个选项:

  • 在视频类中创建getter,例如
    公共字符串getTitle(){return title;}
  • 覆盖
    toString
    功能以输出所需的值,例如:

    @凌驾 公共字符串toString(){ 返回“作者:“+Author+”,标题:“+Title”; }

  • 公共类剪辑{
    私有字符串标题;
    私有字符串作者;
    公共void setTitle(字符串s1){
    title=s1;
    }
    公共void setAuthor(字符串s2){
    作者=s2;
    }
    @凌驾
    公共字符串toString(){
    返回作者+“:”+标题;
    }
    
    重写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);
        }
    
    请重写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());
    

    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());
        }
    
    您可以从数组中检索对象,如下所示:

    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());
        }
    
    在Clip类中重写toString()方法,如下所示

     @override
       public String toString(){ 
    
        return "Title: "+ title +"  ,author"+author;
    
       }
    
    和调用代码调用以下语句

    System.out.println(element[3]);
    
    重写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);
    }
    

    您正在setters中创建新字符串。请不要这样做。这应该是
    this.title=s1;
    有什么问题?搜索override
    toString()
    。你能举个例子吗?这个问题与另一个问题完全相同example@Sureshatta-他是如何创建新字符串的?你这是什么意思?他正在传递一个字符串引用,然后将其分配给私有字段。没有包含字符串构造函数,所以基本上都是关于引用的。是的,就是这样这似乎也不能回答OP的问题