类图是uml的核心。学习类图,总共须要掌握三个部分:类;类之间的关系;类图怎么画。

首先,类。老规矩,先来张图。

是什么:举个简单的样例:猫、狗、猪三个都是动物。这里面的“动物”就是类,表示的是动物类。

在类图的表示中,类都包含一些什么呢?类图中的类都有下面部件:

1.名称,这是类的标识符,在同一个包内,类是不能重名的。

2.属性,比方说人类的属性就有:姓名、身高、年龄等等属性。在这里,有的属性可能不希望被每一个人都知道,比方说年龄。所以又将属性的可见性分公有、私有、受保护和包内公有类型。分别用“+”、“-”、“#”和“~”表示。

3.方法,属性描写叙述的是各种数据,而方法则是这些数据的处理方法。简单的说,属性是都有什么,而方法就是能够干什么。

4.职责和约束,这两个部件是可有可无的,主要是为了说明类是干什么的,用来消除二义性。

在类里面有个特殊的类,我们称之为抽象类,这样的类跟别的类不一样的地方是它不能实体化。比方说,猫类能够实体化出来猫,狗类能够实体化出来狗,可是动物类却不能实体化。那么就称动物类是抽象类。它的作用就是泛化出来子类,这点我们在类的关联里面再说。

类之间的关系:还是老规矩,先来张图。

关系有四种:关联、泛化、实现、依赖。

关联,关联就是说类之间相互有关系,泛化、实现和依赖关系都能够写成关联的形式。这里我们重点说下关联里的一些特例。

1.关联类:在两个类之间具有多对多的关系式,有些属性就不easy确定放在哪,这时就要对他们之间的关联来建模,这就是关联类。比方:一个人能够增加多个社团,而一个社团又能够拥有多个人,这时,这个人在社团中的职务就须要专门弄一个角色的类来存储这个关联。那么角色类就是关联类。

2.聚合和组成:聚合和组成意思类似。简单的说,电脑的 各个部件组装成电脑,没有电脑,零件一样能够存在,这就是聚合。一张表格有非常多格子,没有了表格,格子也不能存在,我们就说是格子组成了表格。

3.或关联与反身关联:普通情况下,一个人,能够是男人,也能够是女人,可是不能既是男人又是女人,这就是或关联;自己与自己关联就是反身关联。

泛化,子类继承父类就是泛化,如动物有这种属性:大小、颜色、重量。那么动物的子类比方说猫类在继承动物类的时候,就不用再去写这些属性了,直接从父类继承就能够了。这种类之间的继承就是泛化。

泛化分为单重和多重,单重比較easy理解,比方猫类继承动物类。多重的意思就是一个子类有两个父类,比方说:一个水陆两栖车的类,它的父类就是汽车和轮船两种。这会造成二义性——汽车有个属性是:陆地行驶,而轮船有个属性是水中行驶。这就导致子类的属性不明白,须要又一次写这个属性。

接下来就是实现关系在了解实现关系之前首先须要了解一个概念:接口。简单的说,人类有个能力是说话,可是,我们把这个功能写在别的类里面。通过一个类似于抽象类的东西去连接它们,就称之为接口。通过接口去实现某项功能就是实现关系。

最后是依赖关系,依赖关系在之前的文章里已经说过,简而言之就是一个类在使用的时候,必须使用别的类的某些功能,这就是依赖关系。

对类图有了个大概的了解后,那么类图怎么画呢?

还是先来一张图

类图的绘制首先须要发现都有哪些类,在找的时候有个技巧,看你的软件中都有哪些名词,这些名词都是类。然后看哪些是须要的类,选择后再看哪些类都有什么关系,然后给各个类限定关系。类图就能够開始画了。

类图就先介绍到这里,下一个是对象图,欢迎观看。

uml系列(四)——类图的更多相关文章

  1. UML简单介绍—类图详解

    类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...

  2. GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系

    统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...

  3. 3.UML中的类图及类图之间的关系

    统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...

  4. UML中的类图及类图之间的关系

    统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...

  5. UML基础系列:类图

    类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...

  6. vs2013\2015UML系列之-类图

    1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他 ...

  7. UML精粹3 - 类图,序列图,CRC

    类图Class diagram 类图描述系统中的对象类型,以及它们之间的各种静态关系.类图也展示类的性质和操作,以及应用于对象连接方式的约束.UML中的特性feature,涵盖了性质property和 ...

  8. 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图

    不同的老师叫我们画 E-R 图居然是不一样的,于是我仔细研究了一番.. 通常所说的 E-R 图(外文全称 Entity Relationship Diagram,简称 ERD)长这个样子: 而有时候它 ...

  9. UML静态视图——类图、对象图、包图

    绘画类的最重要的图是抽象类.让我们回顾一下类的基本内容. 一.分类 1.类的概念: 面向对象编程的类是一个基本概念.类是具有相同特性的.办法.集合语义和一组对象的关系. 2.类分类: 实体类:保存要放 ...

  10. UML简单介绍—类图这么看就懂了

    如何看懂类图 1.类图简介 描述类的内部结构和类与类之间的关系,是一种静态结构图. 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关 ...

随机推荐

  1. css Tab选项卡2

    注意上述 红色方框   这个是锚点的变相  以及overflow:hiden结合, 利用  锚点对应 id  ,  也可以实现. 兼容ie6+  适合手机tab 简单   不需要脚本 其实还可以利用 ...

  2. HTML5 获得canvas油漆环境

    笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/32925369 我们用的最主要的画图环境在canvas中画图.通过调用canv ...

  3. 原子操作(atomic operation)

    深入分析Volatile的实现原理 引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共 ...

  4. Php面向对象 – 继承和重写

    Php面向对象 – 继承和重写 承受: php于,通过类.使用特殊的经营宗旨. 通过定义类,采用extends来表示当前的类对象继承该类的对象. 样例: class C { public  $p_c  ...

  5. php_DWZ-JUI中碰到的问题解决方法详解(thinkphp+dwz)

    原文:php_DWZ-JUI中碰到的问题解决方法详解(thinkphp+dwz) 折腾了两天,dwz删除后,数据不能自动刷新,解决方案,直接看图  . 1. 删除.修改状态后无法刷新记录: 在dwz. ...

  6. 谈论HashMap,HashSet,HashTableeasy被我们忽视

    在正常发育,HashMap,HashTable,HashSet 他们批准了经常使用的按键值地图数据结构.在这里,我主要写一些平时我们使用的这些数据结构easy忽略. HashMap HashMap的结 ...

  7. 产品 线上 保持 和 支持 服务 (Support and maintenance solutions)

    Maintenance and support are the key factors for the smooth functioning of ERP solutions. ERP mainten ...

  8. IE8升级新版Flash Player ActiveX14导致的discuz图片附件无法上传 解决方法

    架不住sb adobe的频繁升级提示,手欠升级到了了flash player 14,结果IE8下全部discuz论坛中都无法看到上传图片的button了 没办法,遇到问题就解决吧 刚好在解决IE11遇 ...

  9. java流下载

    @RequestMapping("/pluginDownload") public void pluginDownload(HttpServletResponse response ...

  10. table中的边框合并实例

    <html><head><style type="text/css">table,th,td{border:1px solid blue;bor ...