Как сделать новый экземпляр объекта, который не перезаписывает существующий? - PullRequest
0 голосов
/ 04 ноября 2019

Итак, у меня есть домашнее задание, и я сделал простое приложение для пользовательского ввода, которое в конце выводит (я хочу это сделать) все введенные данные. Проблема в том, что я не знаю, как сделать так, чтобы он не перезаписывал существующий объект, а создавал новый.

Я предполагаю, что могу создать массив или что-то подобное, и это должно решить проблему, но это не решает мой вопрос, поэтому я пришел сюда за помощью.

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

Если я хочу добавить другого студента, он перезаписывает существующего, который я ожидал, но я не знаю, как сделать так, чтобы он создал новый экземпляр.

1 Ответ

0 голосов
/ 04 ноября 2019

Вот пример кода использования Списка для хранения нескольких учеников:

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

С этой информацией вы сможете завершить свою работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...