UML的三个基本部分:

  • 事物(Things)
  • 关系(Relationships)
  • 图(Diagrams)

类图:

例如下面钟表类的表示

对象图:

UML的几种关系:

依赖关系:(虚线箭头)

类A是源,类B是目标,表示类A使用了类B

关联关系:(实线)

图中的重数A决定了类B的每个对象与类A的多少个对象发生作用,重数B同理

包含关系→共享聚集(空心菱形)

共享聚集:部分可以参加多个整体,例如一个老师在某个学校任职,如果这个学校被拆,那么老师仍然可以去其他学校就职

包含关系→组成聚集(实心菱形)

组成聚集:整体拥有各个部分,整体与部分共存,如果整体不存在了,部分也就不存在了,例如人去世了,身上的器官也就随之失去存在的意义(捐赠器官除外)

继承关系→泛化(空心三角)

样例:

#include<iostream>
#include<cmath>
using namespace std;
class Point
{public:Point(int a = 0, int b = 0){x = a, y = b;}Point(const Point &b)     //②:复制构造函数{x = b.x, y = b.y;}int Getx()  {  return x;  }int Gety()  {  return y;  }private:int x, y;
};
class Line      //类的组合
{public:            //↓下面这里传递参数+对象复制会执行4次Point对象的复制构造函数,即上面的②Line(Point s1, Point s2): p1(s1), p2(s2)       //p1和p2的初始化顺序取决于①处定义顺序{                     //如果p1或者s2没有被初始化,则会调用默认构造函数(即无形参的)进行初始化double x, y;x = static_cast<double>(p1.Getx()-p2.Getx());y = static_cast<double>(p1.Gety()-p2.Gety());len = sqrt(x*x+y*y);}Line(const Line &b): p1(b.p1), p2(b.p2){len = b.len;}double Getlen()  {  return len;  }private:Point p1, p2;    //①double len;
};int main(void)
{Point a(0, 0), b(3, 4);Line q(a, b), q2(q);cout<<q.Getlen()<<endl;cout<<q2.Getlen()<<endl;return 0;
}

对于上面的程序关系视图如下

UML类图(类关系的表示)相关推荐

  1. C++UML类图的关系

    C++UML类图的关系 在C++中UML主要用来描述软件中类和对象以及它们的静态关系.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 类图的3个基本组件: 类名; 属性 ...

  2. UML类图-六种关系详解

    UML基本介绍 UML--Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 UML本身 ...

  3. UML类图和关系--idea使用PlantUML插件画类图

    UML类图和关系 类图 - 依赖关系(Dependence) **应用案例** **Java代码** **UML类图 + PlantUML代码** **小结** 类图 - 泛化关系(generaliz ...

  4. 用红色警戒的单位来帮助我们学习UML类图和关系图

    回顾回顾UML类图的画法,争取自己画出的图能让其他人看得懂. 我为什么要借助红色警戒这个游戏来说明UML类图的画法呢,因为我觉得大家都玩过,对他们的内容都有一个清晰的认识,其次是不想让我的文章太晦涩难 ...

  5. 韩老师设计模式1:7原则。依赖关系3种方法。UML类图6关系。

    面试 1. 原型模式 1)有请使用UML类图画出原型模式核心角色2) 原型设计模式的深拷贝和浅拷贝是什么,并写出深拷贝的两种方式的源码(重写 clone方法实现深拷贝. 使用序列化来实现深拷贝)3) ...

  6. UML类图---类与类图的解析

    <strong>类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据.</strong&g ...

  7. UML类图--依赖关系

    依赖--Dependency:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖. UML展示: 箭头指向:带箭头的虚线,指向被使用者 代码展示: // 人类-类 pu ...

  8. 总结 一下UML 类图的关系

    1,实线三角 表示 泛化  是一种继承关系,它指定了子类如何特化父类的所有特征和行为 2,虚线三角 表示 实现  是一种类与接口的关系,表示类是接口所有特征和行为的实现 3,空心菱形 表示 聚合 是整 ...

  9. visio2007类图实现关系

    参考newevan博客,网址:http://blog.sina.com.cn/s/blog_5bd6b4510101585x.html 类右击->形状显示选项->常规选项-实现连接,确定即 ...

  10. 绘制函数调用图(call graph) C++项目类图 调用关系图

    时间:2021年8月25日14:36:47 参考资料如下: 绘制函数调用图(call graph)(1):专栏开篇_许振坪的专栏-CSDN博客_函数调用关系图怎么画 绘制函数调用图(call grap ...

最新文章

  1. java 窗口开始_Java窗口(JFrame)从零开始(3)——绝对布局
  2. MQ各个元素的详细理解
  3. Python 计算机视觉(一) —— 数字图像处理基础
  4. Centos+Nginx+PHP7.0编译安装(和PHP5.6老版本共存)
  5. python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案
  6. c语言tdatetime变量类型,c++ 时间类型详解(time_t和tm)
  7. java实现录屏_javacv实现桌面端录屏
  8. Lab07 南向协议AC-DCN esight
  9. 【Pyecharts50例】添加背景图片/Logo
  10. 如何 运行WRF模型 天气预报 数据后处理
  11. Mesh网络,让世界“雾”起来 | INE创始人熊羽睿演讲实录
  12. Codeforces 855G Harry Vs Voldemort 边双连通分量+并查集
  13. 计算机软件工作室起名'',游戏工作室起名大全
  14. 马尔科夫链蒙特卡洛(MCMC)
  15. C++模拟扑克过五关
  16. 获取mp3文件的封面,所属专辑以及以及其他基础信息
  17. HTML5期末大作业:家居/家电/家居网站设计——html家具装饰网站设计30页(含论文) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机...
  18. 很好玩的html小游戏代码
  19. Mybatis配置多数据源
  20. Mysql复习计划(四)- 索引失效和数据库设计规范

热门文章

  1. python学来干什么-学python出来到底能干嘛
  2. python和java选择哪个-观点|Java 与 Python:你应该选择哪个?
  3. python必备入门代码-小白入门Python开发,必备技能有哪些?
  4. 绵阳创客开发长语音识别平台 1小时语音10分钟转化为文字
  5. 【Spring笔记】Spring配置
  6. 【互联网周刊】2022年第6期摘录
  7. 最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld
  8. x264源代码简单分析:熵编码(Entropy Encoding)部分
  9. H.264 无参考视频质量评价方法 (使用了基于遗传编程方法的符号回归)
  10. python编程入门教程第6讲_Python开发的入门教程(六)-函数