类图是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. 浅析pinyin4j源码 简单利用pinyin4j对中文字符进行自然排序(转)

    pinyin4j项目  官网地址 http://pinyin4j.sourceforge.net/ 我们先把资源下载下来,连同源码和jar包一起放入工程.如下图: 接下来在demo包下,我们写一个测试 ...

  2. 使用python+flask让你自己api(教程源代码)

    1.背景 ok,这可能是很多朋友和我一样经常使用的各种api,例facebook的.github的.甚至微信api.因此,很多人都想使自己的api.在线教程在这方面它是非常小的,今天,我做了一个平稳, ...

  3. axure7.0下载安装教程

    做产品必需要有原型设计.我们公司称为做demo. demo你能够用ppt做,或者直接做图片.这样给甲方基本通只是. 也能够直接用html做,这样非常慢.尽管真正研发时或许能够复用: 平衡的方案,也是最 ...

  4. 有趣 IOS 开展 - block 使用具体解释

    Block 它是iOS于4.0新的程序语法之后,于iOS SDK 4.0之后,block应用几乎无处不在. 在其他语言中也有类似的概念,称为闭包(closure),实例object C兄弟swift ...

  5. boxfilter 实现

    A implementation of boxfilter boxfilter 是均值滤波的一种改进.在以下这篇blog里面有介绍. http://www.cnblogs.com/easymind22 ...

  6. matlab简单实现SVD的推荐

    %svd chengxu A = [5 5 0 5;5 0 3 4; 3 4 0 3; 0 0 5 3; 5 4 4 5; 5 4 5 5]; A = A'; [U S V] = svd(A); U ...

  7. C#从SQL server数据库中读取l图片和存入图片

    原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStr ...

  8. MongoDB初学者的配置环境和基础设施的使用

    一个.mongoDB安装 1.第一MongoDB官方网站下载安装包http://www.mongodb.org/. 依照自己的操作系统进行下载. 2.在硬盘上建立两个文件夹分辨存放mongoDB安装文 ...

  9. 更新内置flash方法[转]

    原文地址:http://bbs.theworld.cn/thread-223573-1-1.html 由于目前flash插件版本较旧,而旧版flash可能会导致崩溃,其实更新方法很简单,请看如下教程. ...

  10. 沃森Mysql数据库修复工具

    华信Mysql数据库修复程序是由北京华信数据恢复中心独立研发.主要针对Mysql数据库损坏的恢复. 本程序可用于因为各种误操作而导致数据丢失的恢复,以及因为断电.陈列损坏.硬盘坏道等各种原因导致数据库 ...