我有两个类,Student包含一些基本信息,Course包含一些基本信息和ArrayList of Student对象。我想动态地(从用户输入)填充两个类的新实例。例如,会提示用户输入课程名称、教师和询问他们是否要将学生添加到课程中。当完成课程和所有学生的信息,循环回到要求添加另一门课程。
我要做的是,创建一个Course对象,然后添加学生。我管理Student对象,只需在收集了courseInstance.addStudent(new Student(name, age, phone))的用户unput之后创建它们。所有这些都适用于一门课程,但是如何管理从输入动态创建的多个课程对象呢?
下面是一个代码示例:
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);
}发布于 2015-02-19 13:56:48
如何有一个Course对象的列表,并问(在您的while(true)循环中)每个学生正在注册什么课程?
发布于 2015-02-19 13:57:33
创建一个列表,您可以使用这样的课程填充该列表:
ArrayList<Course> courses = new ArrayList<Course>();当学生从课程中输入名称时,请检查该课程是否存在于数组中。如果不是,将其添加到数组中,否则从数组中获取它并添加学生。
发布于 2015-02-19 14:23:15
由于名称似乎是标识课程的主要属性,因此您当然应该重写等于(Object o)方法,这样它就可以比较课程的两个名称。
public boolean equals(Object o){
return this.getName().equals((Course)o.getName());
}然后,您可以简单地拥有一个列表来存储您的课程,并询问该列表是否包含特定的课程。如果没有,可以将其添加到列表中,否则可以将学生或教师添加到现有的课程中。编辑:这两门课程都应该是getName()
https://stackoverflow.com/questions/28608155
复制相似问题