学习UML Class Diagram

本文介绍了UML中的ClassDiagram,包括类图的基本元素和各种关系,如继承、关联、聚合、组合等,并推荐了Lucidchart作为绘制工具,详细阐述了如何配置和使用该工具创建UML类图。

本文描述UML中的Class Diagram,即UML类图。在UML中有很多Diagram,如下,

  • Class Diagram
  • Component Diagram
  • Deployment Diagram
  • Object Diagram
  • Package Diagram
  • Composite Structure Diagram
  • Profile Diagram
  • Use Case Diagram
  • Activity Diagram
  • State Machine Diagram
  • Sequence Diagram
  • Communications Diagram
  • Interaction Overview Diagram
  • Timing Diagram

对于程序员来说,Class Diagram会用的比较多。


一 推荐工具

本人使用的是Lucidchart的免费版本,对于学习来说够用了,这是专门制作各种图表的。也可以使用别的工具。

打开网页后,点击右侧的Sign up free,然后注册一个账号登录进去后,
在这里插入图片描述
然后会出现以下界面,默认会自动添加一个Documents,免费版本只能有3个Documents,鼠标放到红框里,
在这里插入图片描述
点击出现的蓝色Open,
在这里插入图片描述

最后会展现编辑工具视图,如下图,
在这里插入图片描述
上面红框是标题,可以双击修改。由于是学习UML,默认打开的工程没有提供UML工具,需要点击下面蓝色的"+Shape Library",在弹出的界面里的搜索框里输入UML,然后勾选Class Diagram,
在这里插入图片描述
最后点击右下角的Use selected shapes,这个界面会消失,这样就配置好了。

回到编辑界面,左侧出现了UML类图相关的图形,
在这里插入图片描述
类之间的关系则使用工具栏中间靠右的线型和箭头选项,如下,
在这里插入图片描述


二 学习记录

首先拖拽一个Class到显示窗口,如下,
在这里插入图片描述

1. 基本知识

该类图分为三行,

  • 第一行的Class是类名,可以双击修改
  • 第二行是类的属性,即成员变量,变量名左侧的符号表示Visibility,有以下几种,一般前面三个用的比较多
    在这里插入图片描述
    成员变量可以通过右侧的type来指定类型;使用"="来指定默认值
  • 第三行是类的方法,其左侧的符号与成员变量相同,右侧可以使用"()"来指定参数,还有返回值类型

这里定义一个Personal类,其成员变量有name,age,方法有setName(), getName(),setAge(),getAge()和eatFood(),如下,
在这里插入图片描述
如果类是个抽象类,只能用于被继承,如下,
在这里插入图片描述
"<<“和”>>"用来表示这个类是抽象类

2. 继承 — Inheritance

如果一个类是另外一个类的子类,那么它们的关系是继承,如下图,Tiger类和Lion类都继承于Animal类,箭头符号是白色空心三角形
在这里插入图片描述

3. 关联 — Association

老虎会捕食兔子,那么老虎和兔子之间是关联的,符号是一个单独的线
在这里插入图片描述

4. 聚合 — Aggregation

例如狮群(英文叫pride)是由一群狮子组成,但是狮子自己是可以独立存在的。那么Pride类和Lion类之间的关系就是聚合,符号是空心菱形箭头,
在这里插入图片描述

5. 组合 — Composition

和聚合有点类似,区别是其中的个体无法脱离主体存在,例如宾馆里有大厅和卫生间,而大厅和卫生间脱离了宾馆就不能单独存在,使用实心黑色菱形来表示,
在这里插入图片描述

6. Multiply

例如规定宾馆里只有一个大厅,至少一个卫生间,那么可以使用数字来指示,

在这里插入图片描述
其它方式还有如下,
在这里插入图片描述


三 总结

本文讲述了UML类图的几种常用关系,以后在编写代码前,可以尝试先画类图,然后再写程序,这样可以既见森林又见树木。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值