UML类图
类图主要用来描述系统中的类,接口以及它们之间的静态结构和关系的一种静态模型。类图描述一类的属性和操作,也对系统的约束。类图显示集合的类,接口,关联,协作和约束,它也被称为作为结构图。
类图基础属性

类与类之间的关系
在UML类图中,有以下几种常见的关系:泛化(generalization),实现(realization),关联(association),聚合(addregation),组合(composition),依赖(dependency)
依赖关系
介绍:
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:虚线箭头表示
示例:动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数。

泛化
泛化表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。
(1)继承
表示方法:使用空心三角形+实现表示
示例:大雁类继承鸟类
(2)实现
表示方法:使用空心三角形+虚线表示
示例:大雁实现飞翔接口,有了飞这个功能。

关联
介绍:
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
表示方法:实现箭头表示
示例:鸡知道清晨来到。当一个类“知道”另一个类时,可以用关联

聚合
介绍:
表示一种弱的“拥有关系”,即has-a的关系,体现的是A对象可以包含B对象,但B对象并不是A的一部分。两个对象具有各自的生命周期。
表示方法:空心菱形加实线箭头表示。
示例:每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

组合
介绍:
组合是一种强的“拥有”关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。
表示方法:实心的菱形+实线箭头,还可以使用连线两端的数字表示某一端有几个实例。
示例:鸟和翅膀就是组合关系,它们是整体和部分的关系。

总体UML类图
