代码改变世界

UML作业第二次:类图中类的表示

2019-04-03 21:40  倪书敏  阅读(535)  评论(1编辑  收藏  举报

1.关于类图的学习:

类图显示了系统的静态结构。

类:类图中的主要元素,用矩形表示。矩形的上层表示类名中层表示属性下层表示方法 

类之间的关系:关联、依赖、聚集、泛化和实现五种。

2.五种类间关系的图形表示介绍:

 

 3.类图的注释:

 

 例1.

@startuml

倪01 <|-- 倪02

 倪03 *--  倪04

 倪05 o--  倪06

 倪07 ..   倪08

 倪09 --   倪10

@enduml

4.在关系之间使用标签来说明时, 使用 :后接 标签文字,可以在每一边使用 "" 来说明元素。

例如:

@startuml

 Class01 "倪" *-- "倪" Class02 : contains

 Class03 o-- Class04 : 倪

 Class05 --> "倪" Class06

 @enduml

5.在标签的开始或结束位置添加< 或 >以表明是哪个对象作用到哪个对象上。

例如:

@startuml

class Car

 Driver - Car : drives >

 Car *- Wheel : have 4 >

 Car -- Person : < 倪

@enduml

6.通过修饰符{static}或者{abstract},可以定义静态或者抽象的方法或者属性这些修饰符可以写在行的开始或者结束。也可以使用{classifier}这个修饰符来代替{static}

 }
 @enduml@startuml

class 倪 {

   {static} String name

   {abstract} void methods()

 }

@enduml

 7. PlantUML中默认自动将方法和属性重新分组,当然也自己定义分隔符来重排方法和属性,例如:--..==__,我们还可以在分隔符中添加标题。

@startuml

class 倪 {

   You can use

   several lines

   ..

   as you want

   and group

   ==

   things together.

   __

   You can have as many groups

   as you want

   --

   End of class

 }

 

 class name {

   .. Simple Getter ..

   + getName()

   + getAddress()

   .. Some setter ..

   + setName()

   __ private data __

   int age

   -- encrypted --

   String password

 }

@enduml

@startuml
 class age << general >>
 Object <|--- ArrayList
 note top of Object : my age is 22
 note "This is a table" as N1
 Object .. N2
 N2 .. ArrayList
 class name
 note left: my name is wtl
 @enduml

二、班级学生管理系统

属性:

(1)基本信息:学号:varcher  姓名:string  年龄:int  班级:string  班级职务:string

(2)课程信息:学号:varcher 姓名:string 课程名:string 教师:string  教室:string

(3)成绩信息:学号:varcher 姓名:string 成绩:string 课程名:string

@startuml

class 学生个人信息 {

  -姓名:string

  -学号:varchar

  -年龄:varchar

  -班级:string

  -职务:string

  __

  +登录

+添加个人信息

+删除个人信息

  +修改个人信息

  +退出登录

}

class 学生课程信息{

  -课程名:string

  -教室:string

  -老师:string

  __

  +登陆

  +选课

  +退出

  +查看课程

  +课程成绩

}

class 学生成绩 {

  -学号:varchar

  -姓名:string

  -成绩:varchar

  __

  +登陆

  +查看成绩

  +退出

}

学生课程信息 --> 学生个人信息

学生成绩-left-> 学生个人信息

@enduml