类图的定义

在类图中定义静态变量,需要在原来定义格式的基础上,加上下划线

类之间的关系

继承关系-泛化

一个子类继承于一个父类,由子类指向父类,和接口类-实现类的区别在于,这里的父类和子类都是具体的类
image.png

关联关系(Association

  1. class 徒弟{};
  2. class 师傅{
  3. protected:
  4. vector<徒弟> tdlist; //可以有0个或多个徒弟
  5. }
  6. 是怎么理解这个1的?
  7. 这里的1可以理解为在徒弟这个类里面,可以有个师傅的类成员变量来保存这个徒弟的实例化对象被分给哪个师傅的实例化对象
  8. 如果关联关系不是1-*,而是*-*,则"徒弟"里面也要有个存储"师傅"的实例化对象的数组。
  9. 也即
  10. class 徒弟{
  11. vector<师傅> sf_list;
  12. };
  13. class 师傅{
  14. protected:
  15. vector<徒弟> td_list;
  16. }

image.png

依赖关系

  1. class Car{};
  2. class Person{
  3. void Buy(Car car){ //此处是调用了另一个类,但是不拥有另一个类,和关联关系的区别
  4. ....
  5. }
  6. }

image.png

接口类和实现类

虚线空心三角形:描述接口类和实现类之间的关系,接口类是定义了抽象方法但是没有实现,实现类就是具体的类,由实现类指向接口类
image.png
c