从用户输入创建动态对象

时间:2015-02-19 13:54:05

标签: java object dynamic user-input

我有两个类,Student包含一些基本信息,Course包含一些基本信息和ArrayListStudent个对象。我想动态地(从用户输入)填充两个类的新实例。例如,系统会提示用户输入课程名称,教师,并询问他们是否要将学生添加到课程中。完成课程和所有学生的信息后,循环回到要求添加另一个课程 我的工作是创建一个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);
}

3 个答案:

答案 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()