编辑: ddzhikoi | 2019-07-03 |
1 属性可见性 可见性英文限定符 UML标准图示 说明公有 p u b l i c + 其他类可以访问 私有 p r i v a t e - 只对本类可见, 不能被其他类访问 保护 p r o t e c t e d # 对本类及其派生类可见
5 7 类型即属性的数据类型, 可以是系统固有的类型, 如整型、 字符型等, 也可以是用户自定 义的类型.属性的类型决定了该属性的所有可能取值的集合.例如, l e n g t h : d o u b l e即表 示一个d o u b l e类型的属性l e n g t h.对于用于生成代码的类图, 要求类的属性类型必须限制 在由编程语言提供的类型或包含于系统中实现的模型类型之中. 属性的多重性表示为一个包含于方括号中的数字表达式, 位于类型名后, 相当于编程语 言中的数组概念.例如, n u m s : i n t[
1 0 ] 表示此属性是一个大小为1 0的i n t数组.当然, 如 果多重性为1, 则可以省略. 初始值作为创建该类对象时这个属性的默认值.例如, n u m: i n t =3就表示了i n t类型 的n u m 属性的初始值是3.设定初始值有两个好处, 即保护系统完整性, 防止漏掉取值或 被非法值破坏系统完整性, 以及为用户提供易用性. 特性即对属性性质的约束, UML定义了三种可以用于属性的特性:可变( c h a n g e a b l e ) 表示属性可以随便修改, 没有约束;
只增( a d d O n l y) 表示该属性修改时可以增加附加值, 但 不允许对值进行消除或进行减的改变;
冻结( f r o z e n ) 表示在初始化对象后, 就不允许改变属 性值, 对应于 C 中的常量( c o n s t ) .除非另行指定, 否则属性总是可变( c h a n g e a b l e ) 的.例如, P I : d o u b l e =3.
1 4
1 5
9 2
6 { f r o z e n } 就表示一个不可修改的属性 P I . 3.操作 操作是一个可以由类的对象请求以影响其行为的服务的实现, 也即是对一个对象所做 的事情的抽象, 并且由这个类的所有对象共享.操作是类的行为特征或动态特征.一个类 可以有任意数量的操作, 也可以没有操作.调用对象的操作会改变该对象的数据或状态或 者为服务的请求者以返回值为承载提供某些信息. UML对操作和方法做了区别.操作详述了一个可以由类的任何一个对象请求以影响 行为的服务;
方法是操作的实现.类的每一个非抽象操作必须有一个方法, 这个方法的主 体是一个可执行的算法( 一般用某种编程语言或结构化文本描述) .在一个继承网格结构 中, 对于同一个操作可能有很多方法, 并在运行时多态地选择层次结构中的哪一个方法被 调用. 在UML中, 描述一个操作的语法格式为: 可见性o p t操作名( 参数列表) o p t:返回类型 o p t{ 特性} o p t 操作名是操作的标识符.在描述操作时, 操作名是必需的, 其他部分可选.在实际建模 中, 操作名一般是用来描述该操作行为的动词或动词短语, 命名规则与属性相同.同样地, 用下画线标识的操作名, 说明该操作是静态操作, 即外部只需要通过类就可以调用该操作, 不需要事先生成对象.而操作名是斜体则表示操作是抽象的. 可见性同样描述该操作在哪些范围内可以使用, 与属性的可见性相同.例如, +o p e r ( ) 就表示此操作是一个公有操作. 参数列表是一些按照顺序排列的属性, 定义了操作的输入.参数列表的表示方式与 C 、 J a v a等编程语言相同, 可以有零到多个参数, 多个参数之间以逗号隔开.参数的定义 方式使用 [ 方向] 参数名: 类型[ =默认值] 的方式, 方向可以取i n ( 输入参数, 不能对其进行 修改) 、 o u t ( 输出参数, 为了与调用者通信可以对其进行修改) 和i n p u t ( 输入参数, 可以对其 进行修改) 三个可选值.参数可以具有默认值, 这意味着如果操作的调用者没有提供某个具