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中的关联关系相关推荐

  1. java犯的小错误_[Java教程]十个JavaScript中易犯的小错误,你中了几枪?

    [Java教程]十个JavaScript中易犯的小错误,你中了几枪? 0 2015-06-01 12:00:19 序言 在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见 ...

  2. hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate

    好程序员Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFac ...

  3. java 多线程缓存_[Java教程]【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列...

    [Java教程][JAVA并发编程实战]12.使用condition实现多线程下的有界缓存先进先出队列 0 2016-11-29 17:00:10 package cn.study.concurren ...

  4. java 调停者模式_[Java教程]《JAVA与模式》之调停者模式

    [Java教程]<JAVA与模式>之调停者模式 0 2012-06-20 12:00:09 在阎宏博士的<JAVA与模式>一书中开头是这样描述调停者(Mediator)模式的: ...

  5. java单链表通讯录_[Java教程]用java实现单链表(菜鸟出征)

    [Java教程]用java实现单链表(菜鸟出征) 0 2016-03-24 14:00:06 package code;class Node{ Node next; int data; public ...

  6. webservice java教程_[Java教程]JAVA开发Webservice——JAXB

    [Java教程]JAVA开发Webservice--JAXB 0 2016-01-19 17:00:04 JAXB(Java API for JAXB 可以实现Java对象与 下面来了解一下如何通过标 ...

  7. java教程pdf(java教程视频完整版)

    JAVA程序设计基础教程PDF 你在百度文库里找找好像有的,如果没有就去taobao吧,太多的二手旧书了.百度 谷歌上面这样的只是多的是 还有就是百度百科fsd <JAVA从入门到精通>电 ...

  8. android java教程_[Java教程]Android开发快速入门

    [Java教程]Android开发快速入门 0 2020-12-22 18:01:40 Xamarin.Android 应用程序剖析 以下屏幕截图列出了解决方案的内容. 下面是一个解决方案资源管理器, ...

  9. java中如何设置浏览器宽度_[Java教程]关于JS中获取浏览器高度和宽度值的多种方法(多浏览器)_星空网...

    关于JS中获取浏览器高度和宽度值的多种方法(多浏览器) 2017-08-07 0 三种浏览器获取值方法 IE中: document.body.clientWidth ==> BODY对象宽度 d ...

最新文章

  1. R语言可视化包ggplot2绘制分组回归线实战(Regression Line by Group)
  2. 门户网站负载均衡技术的六大新挑战
  3. 一次ctf中代码审计分析
  4. 关于laravel 框架运行数据库迁移文件的一个小坑以及常用php artisan命令
  5. 抓包工具- fiddler的安装
  6. 第 6-6 课:消息队列面试题汇总
  7. Yii2 使用 RESTful 写API接口 实例
  8. 趋势 | AI技能排行榜:TensorFlow热度飙升,Python最火
  9. matlab中未定义与 ‘cell‘ 类型的输入参数相对应的运算符 ‘+‘ 的解决方案
  10. bootstrap treetable 树形网格,动态扩展,连数据库
  11. Python:如何安装与使用 pip
  12. eclipse注释中,文字大小不等的解决办法
  13. HTML5 WebSockets 基础使用教程
  14. 擎天科技携手阿里云 助力政企客户一键管理碳排放
  15. Unity3D 虚拟现实开发(一)
  16. eNSP模拟无线AC和AP
  17. 泰文utf-8转unicode编码实现
  18. echart ——正负条形图
  19. faster-rcnn.pytorch-1.0的jwyang当前最火版本代码复现与讲解
  20. 3D建模教程:3DMAX制作电视机模型!

热门文章

  1. 六星教育python怎么样_六星教育:Python怎么学?自学Python经验分享
  2. 【51nod】---蚂蚁(模拟)
  3. 举头望明月打计算机术语,简单的中秋灯谜及答案
  4. 【MD5】什么是MD5?md5的简要描述
  5. ***kuku的电话号码***
  6. 网易云音乐披露用户数据,90后00后成主力军
  7. 微信H5实现网页长按保存图片及识别二维码
  8. 演艺O2O即将爆发,蛋糕如何分?
  9. Linux软件仓库 全解析
  10. linux中如何搭建本地软件仓库