类图(Class Diagram)是UML(Unified Modeling Language,统一建模语言)中的一种图,用于描述系统中类的静态结构,包括类的属性、方法以及类之间的关系。
一、类
类(Class):用矩形表示,包括类名、属性和方法。
类名:通常位于矩形的顶部,以粗体或斜体显示。
属性:列在类名的下方,通常表示为“可见性 属性名 : 类型”,其中可见性可以是公有(+)、私有(-)、保护(#)或包内私有(~)。
方法:也列在类名的下方,格式为“可见性 方法名(参数列表) : 返回类型”。
二、类的关系
1、继承(Inheritance)
【继承关系】:表示一个类是另一个类的特殊类型,子类继承父类的属性和方法。
【代码体现】:在Java中此类关系通过关键字extends明确标识。
【箭头指向】:带空心三角箭头的实线,从子类指向父类。
2、实现(Realization)
【实现关系】:是接口和实现类之间的关系。类实现了接口中的抽象方法。
【代码体现】:在Java中此类关系通过关键字implements明确标识。
【箭头指向】:带空心三角箭头的虚线,箭头指向接口。
3、依赖(Dependency)
【依赖关系】:是一种使用的关系,被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。这种使用关系是具有偶然性、临时性的、非常弱的,但是B类的变化会影响到A。
【代码体现】:局部变量、方法的参数或者对静态方法的调用。
【箭头指向】:带箭头的虚线,指向被使用的类。
4、关联(Association)
【关联关系】:是对象之间的一种引用关系,使一个类知道另外一个类的属性和方法,通常有“知道”、“了解”的含义。如老师和学生,丈夫和妻子等。关联关系有单向和双向的。单向关联有一个箭头,双向关联有两个箭头或者没有箭头。
【代码体现】:成员变量。
【箭头指向】:带普通箭头的实线,从使用类指向被关联的类。
5、聚合(Aggregation)
【聚合关系】:是一种特殊的关联关系,表示整体和部分之间的关系,如学校和老师,车子和轮胎。是一种“弱拥有”的关系,成员是整体的一部分,成员也可以脱离整体而存在。
【代码体现】:成员变量。
【箭头指向】:带空心菱形的实线,菱形指向整体。
6、组合(Composition)
【组合关系】:是一种特殊的关联关系,表示整体和部分之间的关系,但部分不能离开整体而单独存在。是一种“强拥有”的关系,如身体和大脑之间的关系,大脑不能脱离身体而单独存在。
【代码体现】:成员变量。
【箭头指向】:带实心菱形的实线,菱形指向整体。