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);
...
}