一、类图
类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图。它形象的描述出了系统的结构,帮助人们理解系统。 类图是在"所有的UML图"中,实用频率非常之高;掌握它对于我们软件设计,以及交流都很有帮助。对于类图而言,它的基本单位是类。类主要由三部分组成:类名、属性、操作(函数)。
类名:类的名称
属性:UML类图中,属性的基本格式: 可见性 名称: 类型 [=缺省值]
操作:UML类图中,属性的基本格式: 可见性 名称(参数类表) [:返回类型]
类之间的关系通过下面的符号定义:
@startumlClass01 <|-- Class02 Class03 *-- Class04 Class05 o-- Class06 Class07 .. Class08Class09 -- Class10@enduml
@startumlClass11 <|.. Class12 Class13 --> Class14 Class15 ..> Class16Class17 ..|> Class18Class19 <--* Class20@enduml
在关系之间使用标签来说明时, 使用 :
后接 标签文字。对元素的说明,在每一边使用 ""
来说明.
@startumlClass01 "1" *-- "many" Class02 : containsClass03 o-- Class04 : aggregationClass05 --> "1" Class06@enduml
在标签的开始或结束位置添加<
或 >
以表明是哪个对象作用到哪个对象上。
@startumlclass CarDriver - Car : drives >Car *- Wheel : have 4 >Car -- Person : < owns@enduml
添加方法:
为了声明域或者方法,你可以使用 后接域名或方法名
系统检查是否有括号来判断是方法还是域
@startumlObject <|-- ArrayListObject : equals()ArrayList : Object[] elementDataArrayList : size()@enduml
也可以使用{}
把域或者方法括起来
注意,这种语法对于类型/名字的顺序是非常灵活的
@startumlclass Dummy { String data void methods()}class Flight { flightNumber : Integer departureTime : Date}@enduml
@startumlclass Dummy { {field} A field (despite parentheses) {method} Some method}@enduml
定义可访问性:一旦你定义了域或者方法,你可以定义 相应条目的可访问性质
抽象与静态:
通过修饰符{static}
或者{abstract}
,可以定义静态或者抽象的方法或者属性
这些修饰符可以写在行的开始或者结束。也可以使用{classifier}
这个修饰符来代替{static}
高级类体:
PlantUML默认自动将方法和属性重新分组,你可以自己定义分隔符来重排方法和属性,下面的分隔符都是可用的:--
..
==
__
.
备注和模板:
模板通过类关键字("<<"和">>")来定义
可以使用note left of
, note right of
, note top of
, note bottom of
这些关键字来添加备注。
还可以在类的声明末尾使用note left
, note right
,note top
, note bottom
来添加备注
@startumlclass Object << general >>Object <|--- ArrayListnote top of Object : In java, every class\nextends this one.note "This is a floating note" as N1note "This note is connected\nto several objects." as N2Object .. N2N2 .. ArrayListclass Foonote left: On last defined class@enduml
链接的注释:
在定义链接之后,你可以用 note on link
给链接添加注释
如果想要改变注释相对于标签的位置,你也可以用 note left on link
, note right on link
, note bottom on link
。(对应位置分别在label的左边,右边,下边)
抽象类和接口:
用关键字abstract
或abstract class
来定义抽象类。抽象类用斜体显示。 也可以使用interface
, annotation
和 enum
关键字。
使用非字母字符:
如果你想在类(或者枚举)的显示中使用非字母符号,你可以:
- 在类的定义中使用
as
关键字 - 在类名旁边加上
""
隐藏类:
你也可以使用 show/hide
命令来隐藏类
如果你定义了一个大的!ncluded文件,且想在文件包含之后隐藏部分类,该功能会很有帮助
泛型:
可以用 <
和 >
来定义类的泛型
包:
可以通过关键词 package
声明包,同时可选的来声明对应的背景色(通过使用html色彩代码或名称)
注意:包可以被定义为嵌套。
二、“学生” 类的属性、方法
属性有: 学生基本信息(姓名,学号,年龄,班级,职务) 学生课程信息(课程名,上课教室,老师姓名) 学生成绩信息(学号,姓名,成绩) 三、plant uml 脚本程序 @startuml class 学生个人信息 { -姓名:string -学号:varchar -年龄:varchar -班级:string -职务:string __ +登录 +修改个人信息 +退出登录 } class 学生课程信息{ -课程名:string -教室:string -老师:string __ +登陆 +选课 +退出 +查看课程 +课程成绩 } class 学生成绩 { -学号:varchar -姓名:string -成绩:varchar __ +登陆 +查看成绩 +退出 } 学生课程信息 --> 学生个人信息 学生成绩-left-> 学生个人信息 @enduml