Java教程19—Java中的关联关系
Java中的关联关系
在本文中,我们将讨论Java中的关联。
关联通过其对象建立两个单独类之间的关系。
这种关系可以是一对一,一对多,多对一,多对多。
关联的例子:
class CarClass{String carName;int carId;CarClass(String name, int id){this.carName = name;this.carId = id;}
}
class Driver extends CarClass{String driverName;Driver(String name, String cname, int cid){super(cname, cid);this.driverName=name;}
}
class TransportCompany{public static void main(String args[]){Driver obj = new Driver("Andy", "Ford", 9988);System.out.println(obj.driverName+" is a driver of car Id: "+obj.carId);}
程序输出:
Andy is a driver of car Id: 9988
在上面的例子中,两个类之间存在一对一的关系:CarClass和Driver。
这两个类代表两个独立的实体。
关联与聚合与组合
让我们讨论关联,聚合和组合之间的区别:
尽管这三个都是相关的术语,但它们在两个类的关联方式上存在一些主要差异。
- 关联是两个独立类之间的关系,关联可以是任何类型,例如一对一,一对多。
它连接两个完全独立的实体。 - 聚合是一种特殊的关联形式,它是类(或实体)之间的单向单向关系,例如Wallet和Money类。
钱包有钱,但钱不需要钱包,所以它是一个单向的关系。
在这种关系中,如果其他条目结束,则两个条目都可以存活。
在我们的示例中,如果Wallet类不存在,则并不意味着Money类不存在。 - 组合是一种受限制的聚合形式,其中两个实体(或者您可以说类)高度依赖于彼此。
例如,人类和心脏。人类需要心脏生存,心脏需要人体才能生存。
换句话说,当类(实体)彼此依赖并且它们的寿命相同时(如果一个人死了,那么另一个也是),那么它就是一个组合。
如果没有人类,心脏就没有意义。
原文地址:
https://beginnersbook.com/2013/05/association/
Java教程19—Java中的关联关系相关推荐
- java犯的小错误_[Java教程]十个JavaScript中易犯的小错误,你中了几枪?
[Java教程]十个JavaScript中易犯的小错误,你中了几枪? 0 2015-06-01 12:00:19 序言 在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见 ...
- hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate
好程序员Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFac ...
- java 多线程缓存_[Java教程]【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列...
[Java教程][JAVA并发编程实战]12.使用condition实现多线程下的有界缓存先进先出队列 0 2016-11-29 17:00:10 package cn.study.concurren ...
- java 调停者模式_[Java教程]《JAVA与模式》之调停者模式
[Java教程]<JAVA与模式>之调停者模式 0 2012-06-20 12:00:09 在阎宏博士的<JAVA与模式>一书中开头是这样描述调停者(Mediator)模式的: ...
- java单链表通讯录_[Java教程]用java实现单链表(菜鸟出征)
[Java教程]用java实现单链表(菜鸟出征) 0 2016-03-24 14:00:06 package code;class Node{ Node next; int data; public ...
- webservice java教程_[Java教程]JAVA开发Webservice——JAXB
[Java教程]JAVA开发Webservice--JAXB 0 2016-01-19 17:00:04 JAXB(Java API for JAXB 可以实现Java对象与 下面来了解一下如何通过标 ...
- java教程pdf(java教程视频完整版)
JAVA程序设计基础教程PDF 你在百度文库里找找好像有的,如果没有就去taobao吧,太多的二手旧书了.百度 谷歌上面这样的只是多的是 还有就是百度百科fsd <JAVA从入门到精通>电 ...
- android java教程_[Java教程]Android开发快速入门
[Java教程]Android开发快速入门 0 2020-12-22 18:01:40 Xamarin.Android 应用程序剖析 以下屏幕截图列出了解决方案的内容. 下面是一个解决方案资源管理器, ...
- java中如何设置浏览器宽度_[Java教程]关于JS中获取浏览器高度和宽度值的多种方法(多浏览器)_星空网...
关于JS中获取浏览器高度和宽度值的多种方法(多浏览器) 2017-08-07 0 三种浏览器获取值方法 IE中: document.body.clientWidth ==> BODY对象宽度 d ...
最新文章
- R语言可视化包ggplot2绘制分组回归线实战(Regression Line by Group)
- 门户网站负载均衡技术的六大新挑战
- 一次ctf中代码审计分析
- 关于laravel 框架运行数据库迁移文件的一个小坑以及常用php artisan命令
- 抓包工具- fiddler的安装
- 第 6-6 课:消息队列面试题汇总
- Yii2 使用 RESTful 写API接口 实例
- 趋势 | AI技能排行榜:TensorFlow热度飙升,Python最火
- matlab中未定义与 ‘cell‘ 类型的输入参数相对应的运算符 ‘+‘ 的解决方案
- bootstrap treetable 树形网格,动态扩展,连数据库
- Python:如何安装与使用 pip
- eclipse注释中,文字大小不等的解决办法
- HTML5 WebSockets 基础使用教程
- 擎天科技携手阿里云 助力政企客户一键管理碳排放
- Unity3D 虚拟现实开发(一)
- eNSP模拟无线AC和AP
- 泰文utf-8转unicode编码实现
- echart ——正负条形图
- faster-rcnn.pytorch-1.0的jwyang当前最火版本代码复现与讲解
- 3D建模教程:3DMAX制作电视机模型!