UML:类关系
一、依赖
1、介绍
A类使用到了B类,那就可以描述为A依赖于B。
如果A类没有B类,则无法通过编译
2、UML
3、代码
/*** 人*/public class Person {/*** 吃*/public void eat(Food food){System.out.printf("人吃"+food.createFood());}}
/*** 食物*/public class Food {/*** 创建食物*/public String createFood(){return "食物";}}
4、总结
类A依赖于类B:
- 类B是类A的成员属性
- 类B是接收的参数类型
- 类B是方法的返回类型
- 类A方法中使用到了类B
二、泛化
1、介绍
泛化关系实际上就是继承关系,它是依赖关系的特例
2、UML
3、代码
/*** 图形*/public class Graph {}
/*** 三角形*/public class Triangle extends Graph{}
4、总结
泛化关系实际上就是继承关系
如果B类继承了A类,那么就可以说B和A存在泛化关系
三、实现
1、介绍
实现关系实际上就是B类实现了A接口。实现是依赖关系的特例
2、UML
3、代码
/*** 用户接口*/public interface UserService {/*** 获取用户*/void getUser();}
/*** 用户接口实现类*/public class UserServiceImpl implements UserService{/*** 获取用户*/@Overridepublic void getUser() {}}
四、关联
1、介绍
关联关系是类与类之间的联系,关联关系是依赖关系的特例
关联关系具有导航性:即双向关系和单向关系
关系具有多重性:
- “1”,表示有且仅有一个
- “0…”,表示0个或多个
- “0,1”,表示0个或一个
- “n…m”,表示n到m个都可以
- “n…”,表示至少n个
2、UML
3、代码
/*** 人*/public class Person {private IdCard idCard;}
/*** 身份证*/public class IdCard {}
/*** 身份证*/public class IdCard {private Person person;}
五、聚合
1、介绍
聚合关系表示的是整体和部分的关系,整体与部分可以分开。
2、UML
3、代码
/*** 电脑*/public class Computer {private Keyboard keyboard;private Mouse mouse;public void setKeyboard(Keyboard keyboard) {this.keyboard = keyboard;}public void setMouse(Mouse mouse) {this.mouse = mouse;}}
/*** 键盘*/public class Keyboard {}
/*** 鼠标*/public class Mouse {}
六、组合
1、介绍
组合关系:也是整体与部分的关系,但是整体和部分不可以分开
2、UML
3、代码
/*** 人*/public class Person {private Head head;public void setHead(Head head) {this.head = head;}}
/*** 头*/public class Head {}
