关于#java#的问题,如何解决?

下图是课程类Course的UML类图,说明如下:

(1)私有数据域,课程名称(courseName),类型为String。

(2)私有数据域,选课学生(students),选课学生名单存放在ArrayList数组链表中。

(2)上述数据域的set和get方法。

(3)一个添加学生的方法addStudent(String student)。在此方法中需要抛出异常,当检测到所添加的学生姓名已经存在于域students中,则抛出异常Exception,附加给该异常的消息格式为"same name"+重复的姓名,但不处理。

(4)一个查询选课学生数量的方法getNumberOfStduents()

(5)一个输出课程信息的方法toString(),可以按照指定格式依次输出课程名称、选课人数、选课学生名单。

img

img

上面有原题

img

完整代码如下 :

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] input = scanner.nextLine().split(" ");

        Course c = new Course();
        c.setCourseName(input[0]);
        for(int i=1; i<input.length; ++i) {
            try {
                c.addStudent(input[i]);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
        System.out.println("课程名称 " + c.getCourseName());
        System.out.println("选课人数 " + c.getNumberOfStduents());
        StringBuilder sb = new StringBuilder();
        for(String s : c.getStudents()) {
            sb.append(" ").append(s);
        }
        System.out.println("学生名单" + sb);
    }

    public static class Course {

        private String courseName;
        private List<String> students = new ArrayList<>();

        public String getCourseName() {
            return courseName;
        }

        public void setCourseName(String courseName) {
            this.courseName = courseName;
        }

        public List<String> getStudents() {
            return students;
        }

        public void setStudents(List<String> students) {
            this.students = students;
        }

        public void addStudent(String student) throws Exception {
            if(students.contains(student)) {
                throw new Exception("same name " + student);
            }
            students.add(student);
        }

        public int getNumberOfStduents() {
            return students.size();
        }

        @Override
        public String toString() {
            return super.toString();
        }
    }

运行结果如下:

OOP Jack Jack Tom
same name Jack
课程名称 OOP
选课人数 2
学生名单 Jack Tom

img

OOP Jack Tom Bob
课程名称 OOP
选课人数 3
学生名单 Jack Tom Bob

img

如有帮助,请采纳,十分感谢!