首页 > 其他分享 >uml类图

uml类图

时间:2023-10-08 14:44:34浏览次数:20  
标签:关系 聚合 组合 对象 类图 关联 UML uml

类图组成

类图有上中下三部分:上层是类名,中间层是属性(类的成员变量),下层是方法(类的成员函数)。
#1类名的表示方式: 类名写在最上层,抽象类(类中有纯虚函数)类名需要使用斜体显示
#2属性的表示方式:【可见性】【属性名称】:【类型】= { 缺省值,可选 }
#3方法的表示方式:【可见性】【方法名称】(【参数名 : 参数类型,……】):【返回值类型】虚函数的表示是使用斜体
如果是纯虚函数则需要在最后给函数指定=0。 #可见性:+ 表示public、# 表示protected、- 表示private、__(下划线)表示static

 

类与类之间的关系

继承关系
继承也叫作泛化(Generalization),在UML中,泛化关系用带空心三角形的实线来表示。
关联关系
关联(Assocition)表示一个对象与另一个对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等。在UML类图中,用(带接头或不带箭
头的)实线连接有关联关系的类。在C++中这种关联关系在类中体现为:一个类的对象作为另一个类的成员变量。 关联关系有三种,分别是:单向关联、双向关联、自关联。 #单向关联关系 单向关联指的是关联只有一个方向使用的连接线是带单向箭头的实线, #双向关联关系一般使用没有箭头的实线来连接有双向关联关系的两个类,有些UML绘图软件使用的是带双向箭头的实线来表示双向关联关系。 #自关联关系 自关联指的就是当前类中包含一个自身类型的对象成员,这在链表中非常常见,一般使用带箭头的实线指向自己来描述自关联关系
聚合关系 聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。
在UML中,聚合关系指向整体对象的一端为带空心菱形的直线表示
组合关系 组合(Composition)关系也表示的是一种整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也不存在,整体对象和成员对象之间具有同生共死的关系。 在UML中组合关系用带实心菱形的直线表示,下面举个组合关系的例子: 头(Head)和 嘴巴(Mouth)、鼻子(Nose)、耳朵(Ear)、眼睛(Eye) 依赖关系 依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系,大多数情况下依赖关系体现在某个类的方法使用另一个类的对象作为参数。 在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方

 


关联关系、聚合关系、组合关系之间的区别

关联和聚合的区别主要在于语义上:关联的两个对象之间一般是平等的,聚合则一般是不平等的。

聚合和组合的区别则在语义和实现上都有差别:

组合的两个对象之间生命周期有很大的关联,被组合的对象在组合对象创建的同时或者创建之后创建在组合对象销毁之前销毁,聚合则无需考虑这些事情。
一般来说被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,聚合则不一样,被聚合的对象可以属于多个聚合对象。
最后,再举例子来描述一下这三种关系:

朋友之间属于关联关系,因为这种关系是平等的,关联关系只是用于表示两个对象之间的一种简单的联系而已。
图书馆看书的时候,人和书属于聚合关系。书是可以独立存在的,而且书不仅可以属于自己,也可以属于别人。
人和自己的心脏属于组合关系,因为心脏不能脱离人体而独自存在。
不过,实际应用中,这三种关系的界限划分其实没有那么清楚,有些时候我们会感觉组合和聚合没什么区别,所以,在设计的时候没必要死抠细节,只要能够利用对象之间的关系设计出可行的解决方案即可。

 

标签:关系,聚合,组合,对象,类图,关联,UML,uml
From: https://www.cnblogs.com/ddrm/p/17748540.html

相关文章

  • UML教程3历史4关系
    3历史20世纪90年代是C++等面向对象语言发展的时代。由于所开发的系统复杂难懂,导致系统部署后面临设计和分析问题。很难向他人解释系统。UML一经问世,许多改变游戏规则的实验和方法便应运而生,从而简化了分析系统的艰巨任务。UML是一种面向对象的统一建模语言。它是由Rational软......
  • UML教程1简介2UML图实例
    1简介主要:UML图表简介、UML符号、关系、类图、对象图、用例图、状态机图、组件图、部署图和UML工具。1.2什么是UML?UML是统一建模语言(UnifiedModelingLanguage)的缩写。它是一种标准,主要用于为现实世界中的任何软件系统创建面向对象、有意义的文档模型。它为我们提供了一种开......
  • 9.21 uml感悟
    对uml有了一些全新的认知,之前感觉这课奇奇怪怪的今天课下又往后面翻了翻,书中讲了很多项目的思路结构其实说,真正写出一个程序,感觉离不开的就有计算机语言的语法基础,程序的大体思路,基本结构当然还有一些减时减力的特殊算法至于uml的统一建模语言,这个“统一”和“建模”......
  • UML类图
             ......
  • UML事物
         ......
  • Python机器学习——鸟类图像分类
    (一)选题背景:1.生物多样性保护:鸟类是地球上最为丰富和多样的脊椎动物类群之一,对于生态系统的稳定和生物多样性的维持起着重要作用。通过开展鸟类图像分类研究,可以帮助精确地辨别鸟类物种,有助于监测鸟类的分布、数量和迁徙情况,从而更好地实施生物多样性保护和生态环境管理。......
  • 软件设计师-UML基础教程
    场景针对UML1.5各种模型图的构成和功能进行说明。UML概述UML简介UML(UnifiedModelingLanguage)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。 UML的定义包括UML语义和UML表示法两个部分。(1)......
  • 建模StarUML
    用例图的组成用例图主要包含以下6个元素参与者(Actor)用例(UseCase)关联关系(Association)包含关系(Include)扩展关系(Extend)泛化关系(Generalization)https://blog.csdn.net/qq_41784749/article/details/112235707?ops_request_misc=%257B%2522request%255Fid%2522%253A%25221......
  • Understanding UML in seconds
    UML是一种分析设计语言,也就是一种建模语言。UML结构解析UML其结构主要包括以下几个部分:视图(View)多个图形组成的集合;图(Diagram)图的种类有13种图,但常用的也就两种(1.需求用例图,2.开发类图);模型元素(ModelElement)如类、对象、消息以及这些概念之间的关系,如关联关系、依赖关系......
  • UML介绍
    一、什么是UML统一建模语言(UnifiedModelingLanguage,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言二、UML能够做什么帮助建立软件开发过程中的各种......