类图是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. 大数据量传输时配置WCF的注意事项

    原文:大数据量传输时配置WCF的注意事项 WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMe ...

  2. backup mysql for xtrabackup with xbstream and lz4

    极品暂时mysql加入一个实例,采用xtrabackup最简单的速度. 在现有数据节点上: /home/work/app/xtrabackup-2.2.3/innobackupex --ibbacku ...

  3. 操作系统学习笔记_12_I/O管理 --I/O管理概述

    h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Sans",sans-serif; font- ...

  4. 亚马逊记AWS(Amazon Web Services)自由EC2应用

    很长时间,我听到AWS能够应用,但是需要结合信用卡,最近申请了. 说是免费的,我还是扣6.28,后来我上网查了.认为是通过进行验证.像服务期满将返回. 关键是不要让我进入全抵扣信用卡支付passwor ...

  5. unity3D实际的原始视频游戏开发系列讲座10它《战斗:外来入侵》在第一季度游戏开发

    解说文件夹 <保卫战:异形入侵>游戏开发 第一讲   游戏演示和资源的介绍 第二讲  "异形"怪物的实现 第三讲  "异形"怪物生命值的体现 第四讲 ...

  6. python中and和or的使用方法

    今天看了一个源代码,甚是对python不解,于是查了下资料,只是纠正下网上的老兄的解释 python 中的and从右到左计算表达式.若全部值均为真,则返回最后一个值.若存在假,返回第一个假值. or是 ...

  7. JavaScript中null和undefined的总结

    先说null,它表示一个特殊值,常用来描述“空值”.对null执行typeof运算,结果返回字符串“object”,也就是说,可以将null认为是一个特殊的对象值,含义是“非对象”(感觉怪怪的).实际 ...

  8. 《学习opencv》笔记——矩阵和图像处理——cvAnd、cvAndS、cvAvg and cvAvgSdv

    矩阵和图像的操作 (1)cvAnd函数 其结构 void cvAnd( //将src1和src2按像素点取"位与运算" const CvArr* src1,//第一个矩阵 cons ...

  9. 探测器 C++ Singleton(辛格尔顿)

    一.静态模式不是单一的情况下, 刚开始学习的人可能误, 误以为所有的成员变量和成员方法用于 static , 就是单例模式了: class Singleton { public:     /* sta ...

  10. async和await关键字实现异步编程

    async和await关键字实现异步编程 异步编程   概念 异步编程核心为异步操作,该操作一旦启动将在一段时间内完成.所谓异步,关键是实现了两点:(1)正在执行的此操作,不会阻塞原来的线程(2)一旦 ...