studentList.addStudent()的括号里有什么?



所以我有一个GUI类,其中包含addStudent()方法,旨在调用该方法:经理类的addStudent(Student aNewStudentObj),然后使用用户输入的信息创建学生类的对象。然后,此对象将存储在管理器类中的链表中。

我的问题是,如果有任何内容要进入GUI类中的addStudent()方法的括号中有什么?

我真的尝试了我能想到的一切,现在我正处于脱发的地步,所以所有可能的帮助将不胜感激。请。

我相信所有必需的代码都在下面,但如果您需要完整的GUI类,请告诉我。我还有一个模块类,但我认为这个问题没有必要。

addStudent()下面GUI类的方法

public void addStudent() {
Manager studentList = new Manager();
studentList.addStudent();  <-----------------  What goes in those brackets?
}

学生类如下

public class Student {
private String firstName;
private String surname;
private String email;
private int yearOfStudy;
private int studentId;
private Queue<Module> mods = new LinkedList<>();
public String getFirstName() {
return firstName;
}
public String getSurname() {
return surname;
}
public String getEmail() {
return email;
}
public int getYearOfStudy() {
return yearOfStudy;
}
public int getStudentId() {
return studentId;
}
public String print() {
return "Student ID: " + studentId + "n"
+ "First Name: " + firstName + "n"
+ "Surname: " + surname + "n"
+ "Email: " + email + "n"
+ "Year of Study: " + yearOfStudy;
}
public void addModule(int id, String mCode, int mMark) {
if (mods.size() == 4) {
mods.remove();
}
Module module = new Module();
mods.add(module);
}
//this method returns the module list of this student sorted by marks
public String getModulesSortedByMarks(int id) {
Object[] sortedMods;
sortedMods = mods.toArray();
Arrays.sort(sortedMods);
String sortedModulesList = "";
for (int i = 0; i < sortedMods.length; i++) {
sortedModulesList = "n" + ((Module) sortedMods[i]).print();
}
return sortedModulesList;
}
}

经理类如下

public class Manager {
List<Student> studs = new LinkedList<>();
public void addStudent(Student aNewStudentObj) {
studs.add(aNewStudentObj);
}
public void displayStudent(int studentId) {
System.out.println(studs.get(studentId));
}
public void displayMarks(int studentId) {
Student marks = new Student();
marks.getModulesSortedByMarks(studentId);
}
public void deleteStudent(int studentId) {
studs.remove(studentId);
}
public void displayAll() {
for (Student student : studs) {
student.print();
System.out.println();
}
}
}

问:什么(如果有的话(参数传递给studentList.addStudent()

答:这完全取决于"学生列表"类的addStudent()方法采用哪些参数。

在您的情况下:

  1. studentList是一个Manager(变量或类的名称都很差,但是..(

  2. Manager.addStudent()采用类类型为Student的对象。

  3. 调用addStudent时,需要有一个可用的Student类型的对象。

代码中的一个挑战是,您目前无法为"学生"提供姓名或学生 ID。 这是一个问题。

两种解决方案:

a( 为名称等创建"setter"方法。

。和/或...

b( 创建一个接受名称等作为参数的构造函数。

你需要做几件事来使你的代码工作。

根据我从您的问题中了解到的情况,您的Manager课维护与学生相关的所有数据。

Manager类应该只有一个实例。但是,GUI类的addStudent方法每次调用时都会创建一个新的Manager实例。

接下来,您需要一种方法来创建Student类的实例,其中包含属性所需的值,例如firstnamesurname等您可以使用所有这些参数创建构造函数。

最后,要回答问题中的要点,您需要创建一个Student实例并将其传递给addStudentManager类的方法。

private List<Student> studentList;
public void addStudent(Student student) {
studentList.addStudent(student);  // <--  What goes in those brackets?
}
private Student student;
private List<Student> studentList;
public void addStudent() {
studentList.addStudent(student);  // <--  What goes in those brackets?
}

相关内容

  • 没有找到相关文章

最新更新