Java 如何防止对象数组被覆盖?

Java 如何防止对象数组被覆盖?,java,arrays,object,Java,Arrays,Object,好的,这是我主要方法的一部分: public class Driver { public static void main(String[] args) { Scanner scan=new Scanner(System.in); //Variables to place data attributes of object in String teacherName; int teacherId; double basicSalary; do

好的,这是我主要方法的一部分:

    public class Driver {
public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
   //Variables to place data attributes of object in
    String teacherName;
    int teacherId;
    double basicSalary;
    double extraPaymentRate;
    int numOfCourses=100;
    Course []coursesTaught=new Course[numOfCourses];
    String courseName;
    int courseId;
    int y;
    System.out.println("Please enter number of teachers:");
    y=scan.nextInt();
    Teacher []teacherArray=new Teacher[y];
    for(int i=0;i<y;i++) {
        System.out.println("Enter teacher’s name, id, basic salary, and extra payment rate: ");
        teacherName=scan.next();
        teacherId=scan.nextInt();
        basicSalary=scan.nextDouble();
        extraPaymentRate=scan.nextDouble();
        System.out.println("Enter number of courses taught: ");
        numOfCourses=scan.nextInt();
        for(int j=0;j<numOfCourses;j++) {
            System.out.println("Enter course names and IDs:");
            courseName=scan.next();
            courseId=scan.nextInt();
            coursesTaught[j]=new Course(courseName,courseId);
        }
        teacherArray[i]=new Teacher(teacherName,teacherId,basicSalary,extraPaymentRate,numOfCourses,coursesTaught);
    }
这是课程

public class Course {
public String name;
public int id;
public Course() {

}
public Course(String name,int id) {
    this.name=name;
    this.id=id;
}
我仍然掌握着物体的概念。有什么帮助吗

Course []coursesTaught=new Course[numOfCourses];
在循环之前声明。
因此,您一次性实例化了所有创建的
Teacher
实例,并在循环中使用相同的实例:

Course []coursesTaught = new Course[numOfCourses];
...
Teacher []teacherArray = new Teacher[y];
for(int i=0;i<y;i++) {
   teacherArray[i] = new Teacher(teacherName,teacherId,basicSalary,extraPaymentRate,numOfCourses,coursesTaught);
   ...
}
在循环之前声明。
因此,您一次性实例化了所有创建的
Teacher
实例,并在循环中使用相同的实例:

Course []coursesTaught = new Course[numOfCourses];
...
Teacher []teacherArray = new Teacher[y];
for(int i=0;i<y;i++) {
   teacherArray[i] = new Teacher(teacherName,teacherId,basicSalary,extraPaymentRate,numOfCourses,coursesTaught);
   ...
}

您有一个
coursesTaught
数组。每个教师都需要一个。您有一个
coursesTaught
数组。每个老师都需要一个。
...
Teacher []teacherArray=new Teacher[y];
for(int i=0;i<y;i++) {
    Course []coursesTaught = new Course[numOfCourses];
    teacherArray[i] = new Teacher(teacherName,teacherId,basicSalary,extraPaymentRate,numOfCourses,coursesTaught);
    ...
}