如何画UML类图

如何画UML类图简单介绍统一建模语言 UnifiedModel UML 是用来设计软件蓝图的可视化建模语言 面向对象的建模语言的国际标准 它的特点是简单 统一 图形化 能表达软件设计中的动态与静态信息 类 接口 类图类类 Class 是指具有相同属性 方法和关系的对象的抽象 它封装了数据和行为 是面向对象程序设计 OOP 的基础 具有封装性 继承性和多态性等三大特性 在 UML 中 类使用包含类名 属性和操作且带有分隔线的矩形来表示 类名类名 Name 是一个字符串 例如

简单介绍

统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。

类、接口、类图

类(Class)是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。在 UML 中,类使用包含类名、属性和操作且带有分隔线的矩形来表示。

类名

类名(Name)是一个字符串,例如,Student(注意java语言类名的命名规范)

属性

属性(Attribute)是指类的特性,即类的成员变量。UML 按以下格式表示:

[可见性]属性名:类型[=默认值]

eg.-name:String

注意:“可见性”表示该属性对类外的元素是否可见,包括公有(Public)、私有(Private)、受保护(Protected)和朋友(Friendly)4 种,在类图中分别用符号+、-、#、~表示。

操作

类的成员方法。UML 按以下格式表示:

[可见性]名称(参数列表)[:返回类型]

eg.+display():void

图.如何画UML类图

接口

如何画UML类图

类图

“计算长方形和圆形的周长与面积”的类图
图  “计算长方形和圆形的周长与面积”的类图

类和类之间的关系

在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。

依赖关系

依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。

四种情况:

(4) 静态方法调用

如何画UML类图

下图所示是人与手机的关系图,人通过手机的语音传送方法打电话。

依赖关系的实例

 

关联关系

关联(Association)关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。我们先介绍一般关联。

在代码中通常将一个类的对象作为另一个类的成员变量来实现关联关系

关联关系分为双向关联,单向关联,自关联

双向关联-一般用直线来表示,例如顾客购买商品并拥有商品,反之卖出的商品总是某个顾客与之相关联:

如何画UML类图

 

也可以这样表示

如何画UML类图

如何画UML类图

单向关联

如何画UML类图

如何画UML类图

自关联,系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系为自关联,常见于链表:

如何画UML类图

 

聚合关系

聚合关系的实例
图6 聚合关系的实例

组合关系

组合(Composition)关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 cxmtains-a 关系。

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。

在 UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。图 7 所示是头和嘴的关系图。
 




组合关系的实例
图7 组合关系的实例

泛化关系

泛化关系的实例
图8 泛化关系的实例

实现关系

实现关系的实例

 

一遍UML比较好的文章:https://zhuanlan.zhihu.com/p/

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231452.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab香农编码「建议收藏」

    matlab香农编码「建议收藏」1、读入图像使用imread()函数读入图像,由于m文件和图像放在同一目录下,故采用相对路径。img=imread(‘1.png’);2、统计灰度值使用imhist()函数,对图像的灰度值在[0,255]上做统计,统计每个灰度值出现的概率size()函数用来计算图像的大小。num=imhist(img);[m,n]=size(img);px=num/(m*n)…

    2025年10月23日
    4
  • pycharm2021激活码【中文破解版】

    (pycharm2021激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9ADCNKZL59-eyJsaWNlb…

    2022年3月22日
    79
  • plot画分段函数_Matlab分段函数图像画法的几点注记「建议收藏」

    plot画分段函数_Matlab分段函数图像画法的几点注记「建议收藏」摘要:本文指出《Matlab教程及实训》中关于分段函数画法的不妥,给出Matlab分段函数的最常用的几种画法。关键词:Matlab分段函数Matalb是三大数学软件之一,有强大的计算功能,图形处理功能,仿真功能,因此学好Matlab可以使我们事半功倍。我们在处理实际问题中经常遇到需要画函数图像,尤其分段函数,有时候会感到茫然,如何利用Matlab画分段函数的图像?我们都知道,画图也就是描点…

    2022年6月1日
    71
  • PyCharm安装配置谷歌浏览器驱动[通俗易懂]

    PyCharm安装配置谷歌浏览器驱动[通俗易懂]PyCharm配置安装Chorme驱动下载驱动查看Chorme的版本这是我的谷歌浏览器版本去网站下载对应的驱动软件下载后进入下载的目录,解压然后把这个文件放入Python的Scripts文件夹(首先你的Python环境变量已经配置过)驱动下载地址:http://chromedriver.storage.proxy.ustclug.org/index.html安装驱动进入设置,按照步骤点击安装selenium包然后会出现安装进程,添加完成之后开始测试驱动测试驱动创建一个Pyth

    2022年5月4日
    605
  • PS PhotoShop CS5 CS6 序列号 安装

    PS PhotoShop CS5 CS6 序列号 安装

    2021年8月23日
    61
  • JavaSE目录

    JavaSE目录跳转到总目录01、版本一:视频教程笔记这个版本是我跟着视频教程做的笔记教程来源:java基础到高级_零基础自学Java–尚硅谷–宋红康教程视频地址:https://www.bilibili.com/video/BV1ny4y1Y7CW名称笔记地址一:Java语言概述二:变量、标识符、保留字、变量三:运算符四:程序流程控制五:数组六:面向对象(上)七:面向对象(下)八:面向对象(中)九:异常十:多线程

    2022年5月25日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号