我有两个类,Student
包含一些基本信息,Course
包含一些基本信息和ArrayList
个Student
个对象。我想动态地(从用户输入)填充两个类的新实例。例如,系统会提示用户输入课程名称,教师,并询问他们是否要将学生添加到课程中。完成课程和所有学生的信息后,循环回到要求添加另一个课程
我的工作是创建一个Course
对象,然后添加学生。我通过使用Student
收集用户输出后创建它们来管理courseInstance.addStudent(new Student(name, age, phone))
个对象。这一切都适用于一门课程,但如何管理多个课程对象,从输入动态创建?
这是一个代码示例:
public static void main(String[] args) {
// TODO code application logic here
Course course = new Course();
Scanner in = new Scanner(System.in);
String ans;
String name;
String gender;
String phone;
int age;
System.out.print("Enter course name: ");
ans = in.nextLine();
course.setName(ans);
System.out.print("Enter teacher name: ");
ans = in.nextLine();
course.setTeacher(ans);
while (true) {
System.out.print("Add student (yes or exit): ");
ans = in.nextLine();
if (ans.equals("exit")) {
break;
}
System.out.print("Enter name: ");
name = in.nextLine();
System.out.print("Enter age: ");
age = in.nextInt();
in.nextLine();
System.out.print("Enter gender: ");
gender = in.nextLine();
System.out.print("Enter phone number: ");
phone = in.nextLine();
course.addStudent(new Student(age, name, phone, gender));
}
in.close();
System.out.print(course);
}
答案 0 :(得分:0)
如何拥有Course
个对象列表,并询问(在while(true)
循环中)每个学生注册的课程?
答案 1 :(得分:0)
创建一个列表,您可以使用以下课程填充:
ArrayList<Course> courses = new ArrayList<Course>();
当学生从课程中输入姓名时,请检查课程中是否存在课程。如果没有,请将其添加到数组中,否则从数组中获取并添加学生。
答案 2 :(得分:0)
由于Name似乎是识别课程的主要属性,因此您应该覆盖equals(Object o)方法,以便比较课程的两个名称。
public boolean equals(Object o){
return this.getName().equals((Course)o.getName());
}
然后你可以简单地有一个列表来存储你的课程,并询问列表是否包含特定课程。如果没有,您可以将其添加到列表中,否则您可以将学生或教师添加到现有课程中。 编辑:两个课程都应该是getName()