gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:05:17 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

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

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

关于java - 如何创建一个对象的新实例而不覆盖现有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58694455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com