首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从用户输入创建动态对象

从用户输入创建动态对象
EN

Stack Overflow用户
提问于 2015-02-19 13:54:05
回答 3查看 555关注 0票数 0

我有两个类,Student包含一些基本信息,Course包含一些基本信息和ArrayList of Student对象。我想动态地(从用户输入)填充两个类的新实例。例如,会提示用户输入课程名称、教师和询问他们是否要将学生添加到课程中。当完成课程和所有学生的信息,循环回到要求添加另一门课程。

我要做的是,创建一个Course对象,然后添加学生。我管理Student对象,只需在收集了courseInstance.addStudent(new Student(name, age, phone))的用户unput之后创建它们。所有这些都适用于一门课程,但是如何管理从输入动态创建的多个课程对象呢?

下面是一个代码示例:

代码语言:javascript
运行
复制
    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);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-19 13:56:48

如何有一个Course对象的列表,并问(在您的while(true)循环中)每个学生正在注册什么课程?

票数 0
EN

Stack Overflow用户

发布于 2015-02-19 13:57:33

创建一个列表,您可以使用这样的课程填充该列表:

代码语言:javascript
运行
复制
ArrayList<Course> courses = new ArrayList<Course>();

当学生从课程中输入名称时,请检查该课程是否存在于数组中。如果不是,将其添加到数组中,否则从数组中获取它并添加学生。

票数 0
EN

Stack Overflow用户

发布于 2015-02-19 14:23:15

由于名称似乎是标识课程的主要属性,因此您当然应该重写等于(Object o)方法,这样它就可以比较课程的两个名称。

代码语言:javascript
运行
复制
public boolean equals(Object o){
    return this.getName().equals((Course)o.getName());
}

然后,您可以简单地拥有一个列表来存储您的课程,并询问该列表是否包含特定的课程。如果没有,可以将其添加到列表中,否则可以将学生或教师添加到现有的课程中。编辑:这两门课程都应该是getName()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28608155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档