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

问题描述 投票:-1回答:1

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

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

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());


        }

    }

和学生班

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

[如果我想添加另一个学生,它将覆盖我期望的现有学生,但是我不知道如何使它成为一个新实例。

java instance
1个回答
0
投票

这里是如何使用列表存储几个学生的示例代码:

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

有了这些信息,您应该能够完成工作。

© www.soinside.com 2019 - 2024. All rights reserved.