# UML类图

# UML中的类图以及类图之间的关系

# 1. 类

类(class)是指具有相同属性,方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。

在UML中,类使用包括类名、属性和操作并用分隔线隔开的矩形来表示。

  1. 类名(Name):是一个字符串,一般用大写开头。eg: Car

  2. 属性(Attribute):是指类的特性,即类的成员变量,UML格式为

    [可见性]属性名:类型[=默认值]
    

    可见性表示该属性对于其它类来说,是否能访问,包括

    1. + or ○(green):public(公开,全部可见)
    2. ~ or △(blue) friendly(包内可见)
    3. # or◇(yellow):protected(受保护的,即子类可见,用井围起来),
    4. - or □(red) :private(私有)

    eg: -name:String

  3. 操作(Operations):类的成员方法,UML格式:

    [可见性]方法名(参数列表)[:返回类型]
    

    eg: \+ setName(String name):void

书类的UML表示:

image-20211022171554857

# 2.抽象类

抽象类(abstract class)包括有抽象方法(未实现的方法)的类,定义为抽象类。实现类与抽象类的关系是is a关系,例如定义了一个人类的抽象类和男人的实现类,男人是(is a)人类。

定义和类差不多,只是class替换成abstract class,抽象方法由[可见性]方法名(参数列表)[:返回类型]替换成[可见性] abstract 方法名(参数列表)[:返回类型]

eg:

image-20211022172251149

# 3.接口

接口(Interface)是一种特殊的类,只包括抽象方法不包括属性,操作类或组件对外可见的动作。接口名通常以I开头 eg:

image-20211022172533415

# 4.关系(泛化=实现>组合>聚合>关联>依赖)