类与对象
在UML中用三个格子的长方形代表1个类,每个格子分别是:类名、属性、类的操作
属性名称以小写字母开头
可见性:
+:公共的
-:私有的
#:保护的
类与类之间的关系
继承关系
左边继承右边
关联关系
一个事物和另一个事物有某种关系
例子1:教师和班级
老师可以教授1个或多个班级,一个班级也有多个老师
多重性:1...* 意味着 1个老师可以教授多个班级
依赖关系
一个类的变化可能会影响到另外一个类
具体来说,如果一个类A使用了另一个类B的对象作为其方法的参数、局部变量或者在其方法内部创建了类B的实例,并且类A的行为依赖于类B的某些行为或结构,那么我们就可以说类A依赖于类B
例子1:汽车和燃油
在“汽车”类中有一个方法叫做“驾驶()”,在这个方法里需要用到“燃油”类来减少汽车的燃油量。
这里,“汽车”类就依赖于“燃油”类,因为“驾驶()”方法的操作依赖于“燃油”的存在及其提供的功能。
聚合关系
整体和部分的关系。
说人话:想象一下你有一辆汽车(整体),这辆汽车拥有了轮胎、方向盘等部件(部分)。如果将汽车拆解开来,这些部件如轮胎和方向盘依然可以独立存在,并且它们也可以被安装到其他汽车上使用。这就是聚合关系的一个典型例子。
例子1:图书馆和书籍
“图书馆”类代表一个整体,它可以拥有多个“书籍”对象。
“书籍”类代表部分,即使这个图书馆不存在了,书籍本身仍然是独立存在的实体,它们可以转移到另一个图书馆或者在书店中出售。
例子2
问题:现在有一个UIManager类有一个字典,存储了各种面板内,如游戏开始面板,游戏设置面板,游戏结束面板。UIManage与这些面板之间是什么关系?
分析:即使 UIManager 对象不存在了,各个面板对象仍然可以独立存在。所以说是聚合关系。
组合关系
考虑一个人体和其心脏的关系。心脏是人体的一部分,一旦人体不存在了(比如生物意义上的死亡),心脏也不能单独作为“活着”的实体而存在。这就构成了一个典型的组合关系的例子。
例子1:房屋和房间
“房屋”类代表整体,它可以由多个“房间”对象组成。
“房间”类代表部分,这些房间无法脱离房屋独立存在。如果房屋被拆除了,房间自然也就不存在了。
评论区