面向对象技术类与类的关系

2024-05-08 13:08

本文主要是介绍面向对象技术类与类的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        在软件的设计学习中,面向对象的思想非常重要,面向对象技术便不言而喻了。

        类是面向对象技术中不可或缺的概念,UML基础与应用中接触类,类与类之间的关系引起特别的兴趣。当前理不清它们的思绪,却倔强地“明知山有虎,偏向虎山行”。

        面向对象技术类与类之间的关系主要有四种:关联、依赖、泛化、实现,其中关联又包括聚合和组合,泛化即继承。图,有一句话说:一张图胜过万语千言。图,是我们擅长的,用我们的导图对此做形象的描述:


        关联:体现的是两个类之间的一种强依赖关系,双方的关系是平等的。在UML图中用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。

        其中,关联包括聚合和组合。它们是关联关系的特例,体现的是整体和部分的关系,但它们有着明显的区别:在聚合关系中整体和部分是可以分离的,部分可以属于多个整体,比如学校和学生的关系等。在UML类图设计中用空心菱形加实线箭头表示;而组合,是一种强聚合,整体和部分不可分离,整体的生命结束意味着部分的生命终结,比如人和人的五章六腑。在UML类图设计中用实心菱形加实线箭头表示。

        依赖:是一种很弱的关系,一般很少用。比如,我要去一个很远的地方而且时间很紧张,需要乘坐飞机,此时我和飞机便是一种依赖关系。概括的说,依赖就是类A使用到了类B,类B的变化会影响到类A。在UML类图设计中,用由类A指向类B带箭头虚线表示。

        泛化:这个比较容易理解,描述的是继承,包括单重继承和多重继承。是一个类(子类、子接口)继承另一个类(父类、父接口)的功能,并且可以有自己的新功能。在UML类图设计中,用一条带空心三角箭头的实线表示,从子类指向父类。

        实现:是指类实现接口的功能。在UML类图设计中,用一条带空心三角箭头的虚线表示,从类指向实现接口。

         总之,表现的强弱关系:组合>聚合>依赖。整理之后,突然对它们似乎更熟悉些,不足的地方希望大家多多指教,更深一步的理解应用随着学习的进行而进行。


这篇关于面向对象技术类与类的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/970403

相关文章

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

ffmpeg面向对象-待定

1.常用对象 rtsp拉流第一步都是avformat_open_input,其入参可以看下怎么用: AVFormatContext *fmt_ctx = NULL;result = avformat_open_input(&fmt_ctx, input_filename, NULL, NULL); 其中fmt_ctx 如何分配内存的?如下 int avformat_open_input(

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

chapter06 面向对象基础 知识点Note

文章目录 前言类的设计 属性和行为对象的内存解析 (堆 栈 方法区)类的成员之一 变量(属性) field类的成员之二 方法 method对象数组方法重载 overload可变个数的形参 语法糖方法的值传递机制递归关键字package importMVC设计模式import导入面向对象特征之一 封装类的成员之三 构造器JavaBeanUML类图 前言 ` 面向对象封装 面向

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

file-max与ulimit的关系与差别

http://zhangxugg-163-com.iteye.com/blog/1108402 http://ilikedo.iteye.com/blog/1554822

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,