UML---类图
来源:互联网 发布:信息技术教学的软件 编辑:程序博客网 时间:2024/06/05 05:58
1.什么是类
类是面向对象程序设计实现信息封装的基础,是对真实客观世界中客观存在的事物的抽象的描述。2.类的表示
用一个分成三部分的矩形来表示
第一部分:类的名字
第二部分:类的属性
第三部分:类的方法
抽象为三个层次:
概念层
说明层
实现层
举例:
3.类图的概念
用于定义系统中的类,包括描述类的内部结构和类之间的关系,类图主要用于描述系统的静态结构。
4.类图的关系
4.1关联
关联是类之间的关系,表示有意义的和值得关注的连接。
关联通常是双向的,表明关联的双方彼此能够互相通信,彼此都能够感知到另一方的存在。
单向/导航关联(单向箭头),双向关联(双向箭头或不加箭头),自身关联(一个对象可以与另一个同类的对象有连接,即类可以与自身有关联)。
两个类之间可以有多种关联,一个类可以和多个类关联。
4.1.1普通关联
表示:用直线表示
修饰:
关联名称:用以描述该关系的性质
关联角色:当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色;角色是关联中靠近它的一端的类对另外端类呈现的职责
多重性:一个关联的实例中有多少个相互连接的对象,描述两个相互作用的类之间的对应个数的关系,即类与类之间是一对一的关系,一对多的关系还是多对多的关系
举例(图片源自网络):
4.1.2 聚合:整体/部分关系,空心菱形指向整体,没有严格的时间约束,例火车和发动机,火车里必须有发动机,但是发动机不一定属于这个火车,发动机可以单独存在
4.1.3 组合:整体/部分关系,实心菱形指向整体,没有明显的附属关系,例链表和节点,一个节点只属于一个链表,一个链表可包含0个或多个结点,节点不能脱离链表而存在
总结:先有整体,再有个体,用组合
整体不存在,可以有个体,用聚合
整体不存在,个体也不存在,用组合
4.2依赖
定义:表达一种使用关系,一个事物规格说明的变化可能影响到使用它的另一个事物,反之未必。
表示:用带箭头的虚线表示
使用:类A依赖类B,类A的方法里需要用到类B时,声明为类A依赖类B,箭头指向被依赖的一方
4.3泛化(is a kind of)
定义:描述类和类之间的继承关系
表示:子类和父类之间用空心三角表示,子类指向被继承的父类
继承分类:
单重继承:有且只有一个父类
多重继承:一个类有两个或两个以上的父类
4.4实现
定义:是实现类元之间的语义关系
类图关系总结:
能用关联表达的就不用依赖
能用聚合和组合来表达的就不用普通关联
能用继承描述就一定用泛化关系
当描述是类与接口实现关系的时候一定用实现
另个类之间有结构联系的时候一定用关联
除此之外用依赖
不能只用依赖关系
能用关联用关联
能用组合用组合
能用组合就不用聚合
能用聚合就不用一般关联
能用一般关联就不用依赖
该用接口实现就用接口实现
需要继承就用继承
任何关系都可以用依赖,但我们要用最准确的关系描述两个类之间的相互作用关系
5.类图的构成
类图的作用是用来描述系统的静态部分
类图的构成:
Classes类
Interfaces接口
Collaborations协作
Dependency,Generalization and Association relationships依赖关系、泛化关系、关联关系
Packages or Subsystems(for grouping)包或者子系统
6.类图深入讨论
6.1可见性
public公有
private私有
protected保护
6.2范围
定义:每个实例自己拥有自己的属性和方法
静态成员:对一个类的所有实例共享一个成员,在成员下面加上一条下划线表明该成员是静态成员
6.3属性
6.4操作
6.5模板类
6.6使用类
7.举例
下图是我根据学到的知识对机房收费系统画出的类图,不足之处望大家多提宝贵意见!
- 【Tools】【UML】UML 类图
- 【UML】UML类图
- #UML#UML类图
- 【UML】UML图--类图
- UML 类图
- UML类图
- UML类图
- UML类图
- UML类图
- uml类图
- UML类图
- UML类图
- UML类图
- UML类图
- UML类图
- uml类图
- UML类图
- UML类图
- python 操作Mariadb 数据库
- VS2012下Win32简单画线功能实现
- Java集合中Map接口的使用方法
- STM32F1x系列——GPIO操作
- 浅谈SVN
- UML---类图
- 设计模式之三工厂
- 时序图(Sequence Diagram)
- 暴力博弈的一些的题(不定时更新)
- 什么是设计模式
- linux学习笔记-----任务栏消失解决方案
- 进程池和进程之间的通信
- visual c#中调用visual c++ 编译的cxform.dll问题总结
- 网站设计-html实现点击链接跳转到当前页面的某个位置