1.依赖
依赖是临时的,就比如我现在要用了,就拿来用,关系就好像我和我的一次性纸杯。
使用方式:
类A当中使用了类B,其中类B是做为类A的方法参数、方法中的局部变量、或者静态方法调用。
// 依赖
// 当我要用A3中方法时,就传入A3对象
public int function(A3 a3){
return a3.func();
}
2.关联
关联关系是长期的、稳定的、频繁的。就好像车主和他的车一样的关系。
使用方式:
类A当中使用了类B,其中类B是做为类A的成员变量。
public class People{
//关联关系中做为成员变量的类通常会在类中赋值
private Car car = new Car();
public void driverCar(){
System.out.println(car.getName);
}
}
3.聚合
双方的地位不是平等的,是整体和部分之间的关系。整体和部分都有自己的生命周期,一方的消失另外一方不会跟着消失。
聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“总体-个体”的相互关系。比如:老板和他的员工。
使用方式:一般采用set来赋值
public class People{
Car car;
House house;
//聚合关系中做为成员变量的类通常使用set方法赋值
public void setCar(Car car){
This.car = car;
}
public void setHouse(House house){
This.house = house;
}
public void driver(){
System.out.println(“车的型号:”+car.getType());
}
public void sleep(){
System.out.println(“我在房子里睡觉:”+house.getAddress());
}
}
4.组合
双方的地位不是平等的,是整体和部分之间的关系。比聚合更强,部分的生命周期取决于整体,部分随着整体的消失而消失。区分是聚合还是组合的核心点是在生命周期。 例如:公司和部门。
相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的类表示“总体-部分”的关联关系,“总体”负责“部分”的生命周期,他们之间是共生共死的;而且“部分”单独存在时没有任何意义。
使用方式:一般使用构造方法来赋值
public class People{
Car car;
House house;
//组合关系采用构造方法赋值
public People(Car car,House house){
This.car = car;
}
public void setHouse(House house){
This.house = house;
}
public void driver(){
System.out.println(“车的型号:”+car.getType());
}
public void sleep(){
System.out.println(“我在房子里睡觉:”+house.getAddress());
}
}