1. + public
  2. - private
  3. # protected
  4. UML 规定属性的表达方式:
  5. 可见性 名称:类型[ = 默认值]
  6. UML 规定操作的表示方式:
  7. 可见性 名称(参数列表)[ :返回类型]

image.png

访问权限 本类 本包的类 子类 非子类的外包类
public
protected
default
private

类之间的关系

1.关联关系

将一个类的对象作为另一个类的成员变量

单向关联

image.pngimage.png

双向关联

image.png
image.png

自关联

image.png
image.png

多重性关联

表示两个关联对象在数量上的对应关系,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围。
image.png
例如一个界面(Form)可以拥有多个按钮(Button),但是一个按钮只能属于一个界面。
image.png
image.png

聚合关系

聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。例如汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以单独存在。

代码实现上,成员对象通常作为构造方法,setter 方法或业务方法的参数注入到整体对象中。
image.png
image.png

组合关系

也表示类之间整体和部分的关系,但是在组合关系中,成员对象与整体对象之间具有同生共死的关系。例如人的头(Head)和嘴巴(Mouth)。

代码实现上,通常在整体类的构造方法中直接实例化成员变量。
image.png
image.png

2.依赖关系

大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。例如,驾驶员开车在 Dirver 类的 drive() 方法中将 Car 类型的对象 car 作为一个参数传递,以便在 drive() 方法中调用 Car 类的 move() 方法。

代码中依赖关系通常通过 3 中方式实现。

  1. 将一个类的对象作为另一个类中方法的参数;
  2. 在一个类的方法中将另一个类的对象作为其局部变量;
  3. 在一个类的方法中调用另一个类的静态方法。

image.png
image.png

3.泛化(继承)关系

也就是继承关系,父类与子类之间的关系。
image.png

4.接口与实现关系

也就是一个类实现了一个接口,这个类和这个接口之间的关系。
image.png