类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。 类图中通常包含以下内容: 1)类。 2)接口。 3)协作。 4)依赖、关联、泛化和实现关系。 UML(Unified Modeling Language,统一建模语言)中有4种关系:依赖、关联、泛化和实现。 下面介绍下类、泛化关系、实现关系、关联关系、依赖关系的描述和表示。 1) 类 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同的属性、操作、关系的对象集合的总称。 (类对应的UML图是一个矩形,分为三层,最顶层的是类名,中间层的是属性,最底层的是方法。 属性的表示方式为:【可见性】【属性名称】:【类型】={缺省值,可选} 方法的表示方式为:【可见性】【方法名称】(【参数列表】):【类型】 可见性都是一样的,“-”表示private,“+”表示public,“#”表示protected。) 2) 泛化关系 泛化关系(Generalization)也叫继承关系,用于描述父子类之间的关系,父类又称为基类或者超类,子类又称为派生类。 (实线,带空心三角形的在父类那边) 3) 实现关系 实现关系(Implementation),是对接口和实现类之间的关系,<>表示一个接口,接口没有属性(有属性也要注意都是常量),而且所有的操作都是抽象的,只有操作的声明没有操作的实现。 (虚线,带空心三角形的在接口那边) 4) 关联关系 关联关系(Association)是类与类之间最常见的一种关系,它是一种结构化的关系,表示一类对象与另一类对象之间的关系。关联关系用实线连接,如一个类的对象作为另一个类的成员变量。 关联关系中还有聚合关系和组合关系,都是表示整体和部分之间的关系。不同的是, 在 聚合关系(Aggregation) 中,成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。 (实线,带空心菱形的在整体那边) 在 组合关系(Composition) 中,整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也不存在。 (实线,带实心菱形的在整体那边) 5) 依赖关系 依赖关系(Dependency)是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系,大多数情况下依赖关系体现在某个类A的方法使用了另一个类B的对象作为参数。 (虚线,带箭头,由依赖的一方指向被依赖的一方,如A指向B) 依赖关系通常有三种方式来实现:1、将一个类的对象作为另一个类中方法的参数;2、在一个类的方法中将另一个类的对象作为其对象的局部变量;3、在一个类的方法中调用另一个类的静态方法;