第二次作业 类图

一、类图

类图,是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 leftnote 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的左边,右边,下边)

抽象类和接口:

用关键字abstractabstract class来定义抽象类。抽象类用斜体显示。 也可以使用interfaceannotation 和 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

猜你喜欢

转载自www.cnblogs.com/zrn1234/p/10672804.html