关联关系
类与类之间最常用的一种关系,通常将一个类作为另一个类的属性实现关联关系。
1. 双向关联
//实现方式
class Customer{
private Product[] products; //顾客购买并拥有一些商品
}
class Product{
private Customer customer; //每件商品属于某个顾客
}
2. 单向关联
//实现方式
class Customer{
private Address address; //顾客拥有一个地址
}
class Address{
}
3. 自关联
class Node{
private Node subNode;
}
4. 多重性关联
```java
class Form{
private Button[] buttons;
}
class Button{
}
```
多重性表示方式列表
表示方式 | 多重性说明 |
---|---|
1…1 | 表示另一个类的一个对象只与一个该类的对象有关系 |
0…* | 表示另一个类的一个对象只与零个或多个该类的对象有关系 |
1…* | 表示另一个类的一个对象只与一个或多个该类的对象有关系 |
0…1 | 表示另一个类的一个对象只与零个或一个该类的对象有关系 |
m…n | 表示另一个类的一个对象只与m个或n个该类的对象有关系 |
5. 聚合关系
```java
//整体和部分的关系,部分可以离开整体而单独存在
class Car{
private Engine engine;
Car(Engine engine){
this.engien = engine;
}
public void setEngine(Engine engine){
this.engine = engine;
}
}
class Engine{
}
```
6. 组合关系
![组合关系](https://img-blog.csdnimg.cn/2277d19e6e014140b61e7caea190b004.png#pic_center)
```java
//部分和整体的关系,部分不可以离开整体而单独存在
class Head{
private Mouth mouth;
Head(){
mouth = new Mouth();
}
}
class Mouth{
}
```
依赖关系
class Driver{
public void drive(Car car){
car.move();
}
}
class Car{
public void move(){
}
}