如何创建不覆盖现有对象的对象的新实例?

How to make a new instance of an object that doesn't overwrite the existing one?

所以,我有一些作业要做,我制作了一个简单的用户输入应用程序,它最终输出(我希望我这样做)所有输入的内容。问题是我不知道如何让它不覆盖现有对象而是创建一个新对象。

我想我可以做一个数组或类似的东西,它应该可以解决问题,但它不能解决我的问题,所以我来这里寻求帮助。

public class Main {

    public static void main(String[] args) {

        String next ="y";
        int studentNum = 1;

        Scanner scanner = new Scanner(System.in);


            System.out.println("Do you want to add a student? y/n");
            if(scanner.nextLine().equalsIgnoreCase("n"))
                System.exit(0);

                for(int i = 0;i<studentNum;i++){

                Student student = new Student();
                System.out.println("ID: ");
                student.setId(scanner.nextLine());
                System.out.println(("Ime: "));
                student.setName(scanner.nextLine());
                System.out.println("Prezime: ");
                student.setSurname(scanner.nextLine());

           System.out.println("Do you want to add another student? y/n");
           if(scanner.nextLine().equalsIgnoreCase("y"))
               studentNum+=1;
           else
               for(i =0;i<studentNum;i++)
               System.out.println(student.toString());


        }

    }

和学生 Class

public class Student {

    @Override
    public String toString() {
        return String.format("ID: %s \n%s %s\nAverage grade %.2f\n____________________\n",
                id, surname, name, averageGrade() );
    }
    @Override
    public boolean equals(Object obj) {
        // pretpostavljamo da je predani objekt iz klase Student
        Student otherStudent = (Student) obj;
        return id.equals(otherStudent.id);
    }



    final int ARR_SIZE = 60;

     private String id;
     private String name;
     private String surname;
     private int noOfGrades;
     private CourseGrade[] grades;

    public String getId() {
        return id;
    }

    public void setId(String newId) {
        id = newId;
    }

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String newSurname) {
        surname = newSurname;
    }

如果我想添加另一个学生,它会覆盖现有的学生,这是我所期望的,但我不知道如何让它创建一个新实例。

以下是如何使用 List 存储多个学生的示例代码:

    import java.util.List;
    import java.util.ArrayList;        
    ..
    List<Student> students = new ArrayList<Student>();

    Student s = new Student();
    s.setName("Joe");
    students.add(s);

    Student t = new Student();
    t.setName("Jack");
    students.add(t);

    for(Student student : students) {
        System.out.println(student.toString());
    }

有了这些信息,您应该可以完成您的工作了。