Martin Fowler在他的著作中说,“如果有人在黑暗的小巷中向你走来并对你说:‘嘿,想不想看一张UML图?’那么这张图很有可能就是一张类图,我所见过的大部分的UML图都是类图”。由此可见类图的使用频率。so今天就要简单的说说他。
一、类在uml中的表示

· + :表示public
· - :表示private
· #:表示protected(friendly也归入这类)
因此,上图中的Employee类具有3个私有属性和一个公有方法。
关于属性
UML规定属性的表示方式为: 作用域 名称:类型 [ = 缺省值(就是初始值) ]
如:上图中name属性在uml类中的表示 - name:String
关于方法
UML规定操作的表示方式为: 作用域 名称(参数列表) [ : 返回类型]
如:上图中modifyInfo()方法在uml类中的表示 +modifyInfo():void
由于在Java语言中允许出现内部类,因此可能会出现包含四个部分的类图,如下图所示:

二、类与类之间关系的表示方式
类与类的关系表示方式有六种:关联关系、聚合关系、组合关系、依赖关系、继承关系和接口实现关系。
1、关联(Association)关系
它用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、班级和学生等等。在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量。在使用类图表示关联关系时可以在关联线上标注角色名,一般使用一个表示两者之间关系的动词或者名词表示。
关联关系可进一步分为单向关联、双向关联和自关联。
(1)单向关联

我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。
(2)双向关联

从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了那些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
(3)自关联

自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。
2、聚合(Aggregation)关系
聚合关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。在UML中,聚合关系用带空心菱形的直线表示。例如:汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此,汽车和发动机是聚合关系

3、组合(Composition)关系
组合关系,与聚合关系基本相同,唯一区别就是:成员对象是整体对象的一部分,且成员对象不可以脱离整体对象独立存在。比如下图:

显然,嘴是头的一部分且不能脱离了头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。
4、依赖(Dependency)关系

依赖关系是一种使用关系。从上图我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。
5、泛化(Generalization)关系(继承关系)
泛化关系也就是继承关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。对应的是extend关键字,在UML类图中用带空心三角形的直线表示,如下图所示中,Student类与Teacher类继承了Person类。

6、接口实现关系
在说接口关系时先说下接口的概念。在接口中,通常没有属性,而且所有的操作都是抽象的,只有操作的声明,没有操作的实现。UML中用与类的表示法类似的方式表示接口,如图下图所示:

现在我们说接口实现关系。这种关系对应implement关键字,在UML类图中用带空心三角形的虚线表示。如下图中,Car类与Ship类都实现了Vehicle接口。

说到这关于UML类图的介绍基本就完成,剩下的就是各位同学在工作,学习中去积累了学习了。
三、参考文章
http://www.uml.org.cn/oobject/201211231.asp
https://www.cnblogs.com/shindo/p/5579191.html