📅  最后修改于: 2023-12-03 15:33:17.678000             🧑  作者: Mango
在面向对象编程(OOP)中,关联是指类之间的一种关系。关联表示一个类与其他类之间的连接。有时候这种连接比单纯的依赖更强,两个类依赖的情况通常只限制于类之间的信息交换。
单向关联是指一个类中包含有另一个类的对象。例如,一个学生(Student)类包含有一个课程(Course)类的对象,表示学生选修了该门课程。这种关系是单向的,意味着课程不知道哪些学生已选过该课程。
public class Student {
private Course course;
// 其他方法
}
双向关联是指两个类之间同时存在单向关联。例如,学生(Student)类和课程(Course)类之间存在双向关联,因为课程类需要知道哪些学生选修了它。
public class Student {
private Course course;
// 其他方法
}
public class Course {
private List<Student> students;
// 其他方法
}
聚合关联是种弱的拥有关系,表示类A可以包含类B的对象,但类B的对象不是类A对象的一部分。例如,一个家庭(Household)类包含有若干个人(Person)类的对象。
public class Household {
private List<Person> members;
// 其他方法
}
合成关联是一种强的拥有关系,表示类A拥有类B对象,但类B对象是类A对象的一部分,也不能脱离类A对象而单独存在。例如,一个公司(Company)类包含有多个员工(Employee)类的对象。
public class Company {
private List<Employee> employees;
// 其他方法
}
关联是面向对象编程中重要的一种关系。在写代码时需要根据实际情况选择适合的关联类型,避免出现关联过于紧密或关联不足的问题,从而使代码更加可靠和易于维护。