UML作业第二次:类图中类的表示
作者:互联网
一、类图
类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图。它形象的描述出了系统的结构,帮助人们理解系统。 类图是在"所有的UML图"中,实用频率非常之高;掌握它对于我们软件设计,以及交流都很有帮助。对于类图而言,它的基本单位是类。类主要由三部分组成:类名、属性、操作(函数)。
类名:类的名称
属性:UML类图中,属性的基本格式: 可见性 名称: 类型 [=缺省值]
操作:UML类图中,属性的基本格式: 可见性 名称(参数类表) [:返回类型]
类之间的关系通过下面的符号定义:
@startuml Class01 <|-- Class02 Class03 *-- Class04 Class05 o-- Class06 Class07 .. Class08 Class09 -- Class10 @enduml
@startuml Class11 <|.. Class12 Class13 --> Class14 Class15 ..> Class16 Class17 ..|> Class18 Class19 <--* Class20 @enduml
在关系之间使用标签来说明时, 使用 :
后接 标签文字。对元素的说明,在每一边使用 ""
来说明.
@startuml Class01 "1" *-- "many" Class02 : contains Class03 o-- Class04 : aggregation Class05 --> "1" Class06 @enduml
在标签的开始或结束位置添加<
或 >
以表明是哪个对象作用到哪个对象上。
@startuml class Car Driver - Car : drives > Car *- Wheel : have 4 > Car -- Person : < owns @enduml
添加方法:
为了声明域或者方法,你可以使用 后接域名或方法名
系统检查是否有括号来判断是方法还是域
@startuml Object <|-- ArrayList Object : equals() ArrayList : Object[] elementData ArrayList : size() @enduml
也可以使用{}
把域或者方法括起来
注意,这种语法对于类型/名字的顺序是非常灵活的
@startuml class Dummy { String data void methods() } class Flight { flightNumber : Integer departureTime : Date } @enduml
@startuml class 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
来添加备注
@startuml class Object << general >> Object <|--- ArrayList note top of Object : In java, every class\nextends this one. note "This is a floating note" as N1 note "This note is connected\nto several objects." as N2 Object .. N2 N2 .. ArrayList class Foo note 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
命令来隐藏类
如果你定义了一个大的!included文件,且想在文件包含之后隐藏部分类,该功能会很有帮助
泛型:
可以用 <
和 >
来定义类的泛型
包:
可以通过关键词 package
声明包,同时可选的来声明对应的背景色(通过使用html色彩代码或名称)
注意:包可以被定义为嵌套。
二、“学生” 类的属性、方法
属性有: 学生基本信息(姓名,学号,年龄,班级,职务)
学生课程信息(课程名,上课教室,老师姓名)
学生成绩信息(学号,姓名,成绩)
三、plant uml 脚本程序
@startuml
class 学生个人信息 {
-姓名:string
-学号:varchar
-年龄:varchar
-班级:string
-职务:string
__
+登录
+修改个人信息
+退出登录
}
class 学生课程信息{
-课程名:string
-教室:string
-老师:string
__
+登陆
+选课
+退出
+查看课程
+课程成绩
}
class 学生成绩 {
-学号:varchar
-姓名:string
-成绩:varchar
__
+登陆
+查看成绩
+退出
}
学生课程信息 --> 学生个人信息
学生成绩-left-> 学生个人信息
@enduml
标签:定义,startuml,类图,note,UML,class,中类,string 来源: https://www.cnblogs.com/Liuhuaqing/p/10654350.html