运用面对对象
类的可视化表示
类:矩形表示一个类的图标,类名首字母大写。
包:用文件夹表示,名字是一个文本串
如果洗衣机WashingMachine(类)是家用品Househould(包)的一部分,那么这个类的名字为Household::WashingMashine.包名在左,类名在右。
属性
类的特征,描述了类的对象所具有的一系列特性值。一个类可以具有零个到多个属性。
单字属性名小写。如果属性名包含了多个字,这些字要合并,并且除了第一个字外其余字母要大写。属性名列表放在类名之下,并且和类名之间用分割线隔开。
WashingMachine
brandName
modeName
serialName
capacity
命名实例
对象名首字母小写,后面跟一个冒号,冒号后面是该对象所属的类名。并且整个名字要带下划线。
累的属性在该类的对象中都有具体值
还可以指明属性的附加信息。在类的图标里,可以指定每个属性值的类型。
浮点型、整数型、布尔型、字符串等
操作
类能做的事情,或者你能对类做的事情。和属性名的表示类似,单字操作名小写。如果包含了多个字,这些字要合并,并且除了第一个字外其余字首字母要大写。
操作名列表放在属性名列表之下,两者之间用分割线隔开。
可以为操作制定附加信息。在操作名后面的括号中可以说明操作所需要的参数和参数的类型。有一种操作叫函数,她在完成操作后要返回一个返回值。可以指明函数的返回值以及返回值的类型。
属性、操作和可视化表达
可以只给出类名,而将属性或者操作区空着。
只显示类的一部分属性和操作,可以在列表的后面加上三个小点“……”
构造型:是UML提供的拓展机制:它允许你创建新的模型元素已解决问题,构造型用双尖角括号《》扩出关键字来表示。
职责和约束
职责描述了类能做什么---也就是类的属性和操作能完成什么任务。
职责是消除二义性的一种非形式化的方法
约束是通过一种非常形式化的表他来施加约束,以使模型元素的语义定义更加明确。
小结
UML的类图标是有一个矩形表示。类名字、属性、操作和职责都在区域中有各自的方框。
可以使用构造型来组织属性和操作名列表。可以使用类的省略表示法,只表示类的一部分属性和操作。
可以在类图标中制定属性的类型和初始值,还可以指明操作执行时所需要的参数和参数的类型。对于一个操作来说这些附加信息被称为型构。
关系
关联
关联上的约束
类之间的连接叫做关联
关联不只是一个类;连接另一个类那么简单。好几个类可以连接到同一个类。
有时,两个类之间的关联随后就有一个规则。可以通过关联线附近加注一个约束来说明这个规则
例如:银行职员为顾客提供服务,但是服务的顺序要依靠有序的排队进行。在模型中可以通过在顾客类附近加上一个花括号括起来的有序来说明这个规则(也就是指明约束)
另一种约束是OR,通过在两条关联线之间连一条虚线,虚线上标注OR来表示约束
例如:在高中生高考选专业时,选择专业或者商务。
关联类
与类相同,关联也具有自己的属性和操作。这称为关联类
关联类的可视化表示方式与一般的类相同,但是要用一条虚线把关联类和对应的关联线连接起来。
链
关联也有实例,如果一个特定的队员小丽一个特定的球队,那么两者之间的 小李 关系就叫做一个链
链的名字也要加下划线
多重性
表示多重性的方法是在参与关联的类附近的关联线上注明多重性数值。
例如,球员(5)---球队(1)
使用*来表示许多和多个。在一种语境中,两点代表Or(或)关系
例如1..*表示一对一个或者多个
分支主题
限定关联
当一个类的对象必须要选择规则中另一个类的特定对象来满足关联中的角色时,第一个类必须要依赖一个具体的属性值来找到正确的对象。这个属性值通常是一个标识符号,例如一个ID
它的符号是一个小型矩形框,把作为一对多多重性的一部分的类连在一起
自身关联
一个类可能和他自己发生关联,这样的关联被称为自身关联,
继承和泛化
在UML中用父类到子类之间的连线来表示继承关系。父类连线部分,指向父类的一端带有一个空心三角形箭头。这种连接类型的含义为 is a kind of (属于... ...的一种)
一个类可能没有父类,这种没有父类的被称为基类或根类
一个类也可以没有子类,没有子类的类被称为叶类
如果一个类恰好只有一个父类,这样的继承关系叫做单继承。如果一个类有多个父类,这样的继承就是多继承。
分支主题