第5章类图和对象图解析
3 操作
用于修改、检索类的属性或执行某些动作。 一个类可以有任意数量的操作或者根本没有操作 返回类型、名称和参数一起被称为特征标记。 在同一个类中,操作的名称不必是惟一的,但特 征标记必须是惟一的。 在UML中,类操作的语法为:
[可见性] 操作名 [(参数列表)] [:返回类型] [{特性}]
5.1 类的定义
面向对象系统组织结构的核心。 对一组具有相同属性、操作、关系和语义的对象 的抽象。 包括名称部分(Name)、属性部分(Attribute) 和操作部分(Operation)。
5.1 类的定义
1 2 3 4 5 6 7 名称 属性 操作 职责 约束 注释 用户定义分栏
① 对象必须了解自己,即他有自己的结构和当前状态 ② 对象必须了解他的直接关系
③ 对象有时还要监视特定的信息
类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为: [可见性] 属性名 [:类型] [多重性] [=初始值] [{特性}]
2 属性
(1) 可见性 (2) 属性名 (3) 类型 (4)初始值 (5) 特性 (6) 类作用域的属性
Event
-name:String=no default,{Reauired,1..30 chars} -startDate:Calendar=no defalut,{Required,>today} -duration_in_days:int=1{>0}
(6)类作用域的属性
大部分属性的拥有者是特定的对象(类实 例),这些属性称为实例作用域的属性 属性的值被定义和保存在类里,该类的任 何对象都可以访问这个值,则称为类作用 域的属性,又称为静态属性 表示:
在操作分栏的内部,根据操作的用途,可以使用 版型将操作分成许多小组。
3 操作
(1) 可见性 (2) 操作名 (3) 参数表 (4) 返回类型 (5) 特性 (6) 类作用域的操作
(1) 可见性
类型: ① 公有(Public) “+” ② 私有(Private) “-” ③ 受保护(Protected) “#” ④ 包内公有(Package) “~”
(1) 可见性
命名空间:是UML中可以被命名的元素, 它可以包含另外的命名元素。 命名空间可以规定其包含的元素的可见性 类型: ① 公有(Public) “+” ② 私有(Private)“-” ③ 受保护(Protected)“#” ④ 包(Package)”~”
(2) 属性名
每个属性都必须有一个名字以区别于类中的其他 属性。 属性名由描述所属类特性的名词或名词短语组成 单字属性名小写,如果属性名包含了多个单词, 这些单词要合并,且除了第一个单词外其余单词 的首字母要大写。 如果不同的类拥有相同的属性名,而开发人员又 要在同一上下文中引用他们,必须使用完整的路 径表示属性。
(4) 返回类型
是可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void 来表示无返回值。
属性声明的例子
+size:Area =(100,100) #visibility:Boolean = false +default-size:Rectangle #maximum-size:Rectangle -xptr:XWindowPtr=no default,required Colors:Color[3] points:Point[2..* ordered] name:String[0..1]
Event.status,Venue.status。
(3) 类型
① ② ③ ④ ⑤ 简单类型: 整型Integer 布尔型Boolean 实型Double 字符串String 枚举类型 系统中的其他类
<<enumeration>> Colour red green blue
(4) 初始值
1 名称
当类在类图显示时,名称分栏是惟一必须可见的 分栏。 应该来自系统的问题域。名称应该精确并且简短, 能够描述类所代表的对象的类型。 应该是一个名词,且不应该有前缀或后缀。例外 情况是代表对象集合的类。
Event
Agents
1 名称
名称的大小写规则最好与编程语言的规则 相对应,例如,以下为不太好的命名:
Cancelled_Show,Event_with_no_Shows,
Exempt_Employee,Non_exempt_Employee 将类的属性嵌入到类的名称中了。改为Event, Show,Employee
分为简单名称和路径名称。
2 属性
用来描述该类的对象所具有的静态特征。 一个类可以拥有三种类型的信息:
也称为默认值。 目的: ① 保护系统的完整性,防止漏掉取值或被非 法的值破坏系统的完整性。 ② 为用户提供易用性。 初始值表达式可以是一个单独的数值,也 可以是用某种语言编写的字符串。
(5) 特性
指定关于属性的约束信息。 任何希望添加在属性定义字符串值但又没有合适 地方可以加入的规则,都可以放在特性里。在其 他对象试图改变属性值时,特性字符串的规则可 以保护属性的完整性。 特性被表示为“标记定义=标记值”的形式。
(2) 操作名
用来描述所属类的行为的动词或动词短语。 单字操作名小写,如果操作名包含了多个 单词,这些单词要合并,并且除了第一个 单词外其余单词的首字母要大写。
(3) 参数表
一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数才行。 定义方式:“名称:类型”。 若存在多个参数,将各个参数用逗号隔开。 参数可以具有默认值。
第5章 类图和对象图
5.1 类的定义 5.2 类之间的关系 5.3 派生属性和派生关联 5.4 抽象类、接口和模板类 5.5 边界类、控制类和实体类 5.6 类图 5.7 领域分析 5.8 OO设计原则 5.9 对象图 5.10 类图和对象图的区别 5.11 在Rose中操作对象图和类图 5.12 实例——图书馆管理系统的类图