UML描述面向对象程序设计中类与类的关系

在面向程序设计中,类与类之间的关系主要有关联关系、依赖关系、泛化关系、接口与实现关系共四种关系。下面将简要进行概述:

一、关联关系

关联关系是类与类中较为常见的关系,其中又包含了以下六种子关联关系:

(一)双向关系:

默认情况下,关联是双向的,例如,顾客与商品、父母与子女。双向关联关系用实线表示。

(二)单向关联关系

表示一个类与另一个类单方面关联关系,例如居民拥有地址。单向关联用带箭头的实线表示。

(三)自关联关系

代表该类与自身有关联关系,一个节点类的成员又是节点对象。用指向该类的带箭头的实线表示。

(四)多重性关联关系

指一个类的对象与另一个类的对象有多重关系,常有一对多、多对一、一对一、多对多等关联关系。例如,一个界面有多个按钮。

(五)聚合关系

助记方法:“聚集”,类似物以类聚。因此关联性较低,即使某一部份不存在或者销毁,并不影响其他单元。因此,使用“空心菱形+箭头的实线”表示(空心可记为关联性低,不走心),箭头指向小的聚合个体。例如,汽车组装中的各个零件:

(六)组合关系共六种关系。

助记:“组成”,那就意味着缺一不可,关联性极高。因此使用“实心菱形+箭头的实线”表示(实心可记为关联性高,走心),例如头和嘴巴:

二、依赖关系

依赖关系(Dependency)是一种使用关系,大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。常用“箭头+虚线”表示,由依赖的一方指向被依赖的一方。例如,驾驶员开车,在Driver类中的drive()方法将利用Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用car的move()方法,因此Driver类以来Car类。

三、泛化关系

泛化关系(Generalization)也称作继承关系,用于表示父类(也称基类或超类)与子类(也称派生类)之间的关系。用“实线+空心箭头”表示,例如Student与Teacher类均可继承自Person类。

四、接口与实现关系

在接口中,一般没有属性,并且所有的操作都是抽象表示的,即只有操作声明,没有操作的实现方法。实现方法由使用接口的类进行定义。例如,交通工具都会移动,故有move()方法,首先提出声明;但是轮船、汽车的move()方法又各不相同,因此根据他们的各自的特性再进行具体的定义(实现接口)。

原文地址:https://www.cnblogs.com/somedayLi/p/9709186.html

时间: 2024-10-11 08:32:31

UML描述面向对象程序设计中类与类的关系的相关文章

面向对象中类和类的关系

在面向对象方法中,我们在确定了类及类的属性和方法后.不可避免的要研究类和类之间的关系,正是这些关系将整个事情串联起来.使彼此之间有了联系,就像现实生活中,人与人交往中存在着不同的关系. 了解这些关系,对于我们开发系统百利而无一害,能够让我们轻松.高效的工作,相同像我们在日常生活中处理好人与人之间的关系.会给我们带来巨大的优点.那么我们就来认识一下.面向对象中类与类之间有那些关系. 类和类之间的关系大概能够分为一下几种类型:泛化关系(Generalization).实现关系(realization

面向对象程序设计——抽象基类,访问控制与继承,继承中的类作用域,拷贝函数与拷贝控制

一.抽象基类 1)纯虚函数 和普通的虚函数不同,一个纯虚函数无须定义.我们通过在函数体的位置(即在声明语句的分号之前)书写=0就可以将一个虚函数说明为纯虚函数.其中,=0只能出现在类内部的虚函数声明语句处. 值得注意的是,我们也可以为纯虚函数提供定义,不过函数体必须定义在类的外部.也就是说,我们不能在类的内部为一个=0的函数提供函数体. 2)含有纯虚函数的类是抽象基类 含有(或者未经覆盖直接继承)纯虚函数的类是抽象基类.抽象基类负责定义接口,而后续的其他类可以覆盖该接口.我们不能直接创建一个抽象

c++面向对象程序设计总结(类的使用)

本篇算是学习c++有关类的知识的一些易错点吧..... 并不是特别详细 几点并不关于类的东西 1.函数模板,用虚拟类型来实现模板的功能 #include<iostream> using namespace std; template <typename t>//t为虚拟类型的名字,自己起的 t maxx(t a,t b,t c) { return max(a,max(b,c)); } int main() { double a=1.1,b=2.2,c=3.3;//不管为double

Java中类与类的关系

1.泛化(Generalization) 根据我所理解.泛化就是子类继承父类的方法,还能扩展自己的功能 eg:extend implements 2. 依赖(Dependency) 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系. 体现为:局部变量.方法的参数或者对静态方法的调用 eg:你要过河.需要借助船 3.关联(Association) 当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系.

《数据结构与面向对象程序设计》实验3报告

学号 20182329 2019-2020-1 <数据结构与面向对象程序设计>实验3报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 李一卓 学号:20182329 实验教师:王志强 实验日期:2019年9月30日 必修/选修: 必修 1.实验内容 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号( http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTE

[.net 面向对象程序设计深入] (1) 开篇

[.net 面向对象程序设计深入] (1) 开篇        [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个相对浮燥的年代,还是有这么多人能静下心下学习.其实不怕基础不好,也不要羡慕各种大牛,在大牛们接受崇拜的时候,你能知道他们背后付出的努力么? 在我上几篇文章中,好多小伙伴急于想看更高级的东西,所有高级的都是先打基础.喜欢看武侠剧的朋友知道,有个大牛叫扫地僧,他只是每天清理藏经阁,静心读书.静心学习

[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介: 1.用例图:对系统的使用方式分类. 2.类图:显示类和它们的相互关系. 3.对象图:只显示对象及它们的相互关系. 4.活动图:显示人或对象的活动,其方式类似于流程

sdut 面向对象程序设计上机练习七(类和对象)

面向对象程序设计上机练习七(类和对象) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用类的数据成员和成员函数完成下列操作:输入三个整数,输出它们的最大值. 输入 输入三个整数. 输出 输出3个整数的最大值. 示例输入 2 8 5 示例输出 8 这个就不做详细注释了,初学者也能尝试着看懂. #include <iostream> using namespace std; class shu { private: int a,b,c; public:

sdut 面向对象程序设计上机练习五(简单类和对象)

面向对象程序设计上机练习五(类和对象) Time Limit: 1000MS Memory limit: 65536K 题目描述 定义类Time,Time有3个公用的数据成员hour.min.sec分别表示小时.分.秒. 在主函数main中定义Time类对象t1,在主函数main中输入t1的各数据成员再并输出各数据成员. 输入 输入类对象的3个数据成员hour.min.sec. 输出 输出类对象的3个数据成员hour.min.sec. 示例输入 9 10 11 示例输出 9:10:11 #inc