类与类之间都哪些交互关系呢?

UML 统一建模语言中定义了六种类之间的关系。它们分别是:泛化、实现、关联、聚合、组合、依赖。关系比较多,而且有些还比较相近,比如聚合和组合,接下来我就逐一讲解一下。

泛化(Generalization)可以简单理解为继承关系。具体到 Java 代码就是下面这样:

public class A { ... }public class B extends A { ... }

实现(Realization)一般是指接口和实现类之间的关系。具体到 Java 代码就是下面这样:

public interface A {...}public class B implements A { ... }

聚合(Aggregation)是一种包含关系,A 类对象包含 B 类对象,B 类对象的生命周期可以不依赖 A 类对象的生命周期,也就是说可以单独销毁 A 类对象而不影响 B 对象,比如课程与学生之间的关系。具体到 Java 代码就是下面这样:

public class A {private B b;public A(B b) {this.b = b;}}

组合(Composition)也是一种包含关系。A 类对象包含 B 类对象,B 类对象的生命周期跟依赖 A 类对象的生命周期,B 类对象不可单独存在,比如鸟与翅膀之间的关系。具体到 Java 代码就是下面这样:

public class A {private B b;public A() {this.b = new B();}
}

关联(Association)是一种非常弱的关系,包含聚合、组合两种关系。具体到代码层面,如果 B 类对象是 A 类的成员变量,那 B 类和 A 类就是关联关系。具体到 Java 代码就是下面这样:

public class A {private B b;public A(B b) {this.b = b;}
}
或者
public class A {private B b;public A() {this.b = new B();}
}

依赖(Dependency)是一种比关联关系更加弱的关系,包含关联关系。不管是 B 类对象是 A 类对象的成员变量,还是 A 类的方法使用 B 类对象作为参数或者返回值、局部变量,只要 B 类对象和 A 类对象有任何使用关系,我们都称它们有依赖关系。具体到 Java 代码就是下面这样:

public class A {private B b;public A(B b) {this.b = b;}
}
或者
public class A {private B b;public A() {this.b = new B();}
}
或者
public class A {public void func(B b) { ... }
}

类与类之间的交互关系相关推荐

  1. Java-用类描述人之间的血缘关系

    用类描述人之间的血缘关系 上面介绍的图形类和电商类只会引用别的类,但一个类定义中还可以引用它自己, 比如我们要描述人以及人之间的血缘关系.我们用类Person表示一个人,它的实例成员包括其父亲.母亲. ...

  2. 母亲产前压力、胎儿大脑连接和分娩时的胎龄之间的交互关系

    以往报告母亲产前压力和儿童行为之间显著关联的研究经常被产后抚养环境和产前压力的相关因素所混淆.本研究的主要目的是要确定母亲产前压力是否与婴儿出生前大脑功能连接的变化有关.本文使用118个胎儿(48位女 ...

  3. 是什么事类,什么是对象,类和对象之间有什么关系?

    什么是类 类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类 ...

  4. TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?

    前言 先给出近期文章列表: 逻辑设计中复位的稳妥处理方法? 逻辑设计中需要显式地使用IBUF以及OBUF类似的原语吗? TCL中关于管脚(Ports)的一些使用方法? TCL中关于Pins的一些使用方 ...

  5. Java中基本数据类型和Object之间的关系

    1.基本数据类型和Object之间是没有关系的 2.基本数据类型的包装类 例如int 的包装类Integer的父类则是Object 输入:12 解释:在赋值的过程中进行自动装箱

  6. 协调多个对象之间的交互——中介者模式

    本文转载自 :http://blog.csdn.net/lovelion/article/details/8482952 腾讯公司推出的QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多 ...

  7. UML类图---类与类图的解析

    <strong>类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据.</strong&g ...

  8. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系

    各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...

  9. diagram怎么记忆_UML20以上14图的解释、分类记忆方法及类之间6种关系

    UML2.0 分类 以下是教材书上的顺序: (1)类图(Class Diagram). 类图描述一组类. 接口.协作和它们之间的关系.在00系统的建模中,最常见的图就是类图.类图给出了系统的静态设计视 ...

最新文章

  1. signature=35e01da53254eb12b5fc3c020f572e6a,Signature Analyzer Use NXP MCU
  2. python装饰器解析_Python 装饰器解析
  3. oracle values函数,Oracle文本函数简介
  4. python函数在传参的时候,到底在传些什么?
  5. python 如何定义n个变量 (变量声明自动化)
  6. ROS-OccupancyGrid学习笔记
  7. 首款搭载鸿蒙OS的智能手机,首款搭载鸿蒙OS 华为智选智能摄像头Pro零点全网开售:299元...
  8. win10运行在哪里_90s安装新一代win10X!全新操作界面,完美兼容win7或win10程序
  9. 设备参数—支持网络外部的通信
  10. opencv多通道图像转单通道
  11. 软件系统测试报告范文,软件系统测试报告模板.docx
  12. 《AutoCAD全套园林图纸绘制自学手册》一1.5 园林设计图的绘制
  13. 基于java springmvc+mybatis酒水商城管理系统设计和实现
  14. 一个伟大的人,一本励志的书!——《居里夫人自传》读后感
  15. python字符串格式化是什么意思_python字符串格式化什么意思
  16. 这个世界上,没有什么是实实在在的, 都是空虚,虚无, 空虚的空,虚无的虚,无的无....
  17. 吃货制霸地图生成 美食标注 中国制霸数据生成器
  18. 怎么查服务器芯片组,服务器芯片组
  19. 利用iframe实现局部打印(区域打印)
  20. Appscan测试工具简介

热门文章

  1. 实时机器学习是什么,面临哪些挑战?
  2. HTML学习笔记(三)样式CSS
  3. 自动化测试有缺点吗?
  4. java怎么删除List中的指定元素
  5. 子查询二(在HAVING子句中使用子查询)
  6. proxmox超融合集群用户授权
  7. POJ-1321-棋盘问题(深搜)
  8. windows 安装
  9. Hadoop SequnceFile.Writer 压缩模式及压缩库浅析
  10. Redhat 5 配置DHCP服务器