Java多对多关系示例
下面是一个Java多对多关系的示例:
// 学生类
public class Student {
private int id;
private String name;
private List<Course> courses;
public Student(int id, String name) {
this.id = id;
this.name = name;
this.courses = new ArrayList<>();
}
public void addCourse(Course course) {
courses.add(course);
course.addStudent(this);
}
// getter和setter方法
// ...
}
// 课程类
public class Course {
private int id;
private String name;
private List<Student> students;
public Course(int id, String name) {
this.id = id;
this.name = name;
this.students = new ArrayList<>();
}
public void addStudent(Student student) {
students.add(student);
student.addCourse(this);
}
// getter和setter方法
// ...
}
// 使用示例
public class Main {
public static void main(String[] args) {
Student student1 = new Student(1, "Alice");
Student student2 = new Student(2, "Bob");
Course course1 = new Course(1, "Math");
Course course2 = new Course(2, "English");
student1.addCourse(course1);
student1.addCourse(course2);
student2.addCourse(course1);
student2.addCourse(course2);
System.out.println(student1.getCourses()); // 输出[course1, course2]
System.out.println(student2.getCourses()); // 输出[course1, course2]
System.out.println(course1.getStudents()); // 输出[student1, student2]
System.out.println(course2.getStudents()); // 输出[student1, student2]
}
}
在这个示例中,Student
和Course
之间存在多对多的关系。Student
类中有一个List
类型的属性courses
,表示学生所选的课程。Course
类中也有一个List
类型的属性students
,表示选择该课程的学生。当学生选择一门课程时,会将该课程添加到courses
列表中,并且这门课程也会将该学生添加到students
列表中。这样就建立了一个多对多的关系。
在使用示例中,我们创建了两个学生对象和两门课程对象,并且通过调用addCourse
方法建立了学生和课程之间的关系。最后,我们打印出学生所选的课程和课程所选的学生,验证了多对多关系的正确性。