Setter Getter Arrays Java



有人可以帮助我解决一个小问题。我想为1个学生设置3个讲座,但是当我尝试这个学生时,我无法设置讲座。

student.setStudentLecture(lecture);
student.setStudentLecture(lecture1);

public class Student {
    private Lecture[] lecture;
    public void setStudentLecture(Lecture[] lecture) {
        this.lecture = lecture;
    }
    public Lecture[] getStudentLecture() {
        return lecture;
    }
}

您使用的是讲座对象的数组,并用两个不同的数组引用覆盖相同的数组。因此,它不起作用。使用以下代码:

    public class Student {
    private Lecture[] lecture;
    public void setStudentLecture(Lecture[] lecture) {
        this.lecture = lecture;
    }
    public Lecture[] getStudentLecture() {
        return lecture;
    }
    public static void main(String[] args) {
        Student student = new Student();
        Lecture[] lectures = new Lecture[3];
        lectures[0] = new Lecture("Physics");
        lectures[1] = new Lecture("Mathematics");
        lectures[2] = new Lecture("Chemistry");
        student.setStudentLecture(lectures);
        Lecture[] lectures1 = student.getStudentLecture();
        for (int i = 0; i <lectures1.length; ++i) {
            System.out.println(lectures1[i].getName());
        }
    }
}
public class Lecture {
    private String name;
    public Lecture(String name) {
        this.name = name;
    }
    public String getName(){
        return name;
    }
}

当您的设置也为数组时,您可以创建讲座的数组并将其设置为学生。

样本: -

Student student = new Student();
Lecture lecture = new Lecture();
Lecture lecture1 = new Lecture();
Lecture[] lectureArr = new Lecture[]{lecture, lecture1};
student.setStudentLecture(lectureArr);

,您也将学生锁定为数组,那么为什么要分配两次不同的数组,可以将数组组合并分配。