Uml中的类图是uml中最重要的图之一,同时类图也是最难画的图之一。
类图由类和类之间的关系组成,他可以表示程序设计中的一个类型,也可以表示现实世界中的一类事物,或一个概念。
类是具有相同的属性与方法的对象的集合,表示形式如图所示:分为上中下三个部分,分别为类的名称,属性,方法。如图所示:
类的名称用来唯一的表示一个类,他能够恰当的反应改类所代表的含义。他是必须的一个部分,而属性 或者方法可以省略。或只写出其中一部分重要的属性或方法。类的属性与方法,分为三类,分别为公有的,私有的,受保护的,形式如图所示:
类与类之间的关系式类图的一个重要的组成部分,对于一个复杂的系统来说,能够准确的抽象出类与类之间的关系式非常重要的,在类图当中长用的关系有关联关系,依赖关系,泛化关系,其中各种关系的说明请参见博客:uml中的四种关系。类的属性与方法的详细说明。
类的属性的语法如下:
可见性+ 名称:类型=默认值 {约束条件}如图示:
可见性为私有的,名称为name,类型为string,默认值为张三,约束条件:必须为真实的名字。
类的方法的语法如下:
可见性 名称(参数表) :返回类型 {约束条件}
可见性,名称与属性的相同,参数表表示该方法用到的参数,可以是一个,也可以是多个,返回类型,表示该方法执行完以后返回的类型,可以省略,约束条件,描述了方法的约束条件。如图示:
假如暂停一个正在运行的系统,就会返现系统在这个时刻包含一组对象,其中每个对象都处于一个具体的运行状态,每个对象都与其他的对象有特定的关系,把这一时刻的系统状态用图来绘制,就形成了对象图。
对象图是对包含在类图中的各个类图进行实例建模,他显示了在某一时间点上系统中的一组对象以及他们之间的关系,对象图用于描述系统的静态过程。
对象图与类图具有相同的表示形式,唯一的区别在于对象的名字下面要加上一条下划线。
包分为两种,一种是简单包,只有包名,还有一种是扩展包,不仅显示了包名,而且还显示了包中的一些内容。
包中还可以拥有一些其他的元素,这些元素可以是类, 借口,构件,用例等,甚至还可以是其他的包,包与其元素是组成的关系,如果包被撤消了,那么包中元素也就被撤消了。
包与包之间的关系,主要有三种,泛化关系,依赖关系,细化关系,前两种请参见博客:uml中四种关系。
细化关系,就是一个包包含另外一个包包含相同的元素,但却带有更多的细节。则称两个包为细化关系。细化关系用一条带有空心三友箭头的有向虚线表示,其中箭头指向被细化的包。举个例子,假设有两个包都描述了一本书,其中包A里是这本书的完整的章节描述。而包B则是这本书的完整章节的详细内容。则称包A和包B是细化关系。包A是被细化的包。
在面向对象的分析设计当中,类图,对象图,与包图,是非常重要的理解模型。一定要好好的理解。