什么是关系?

关系是指事物之间存在单向或双向的作用或者影响的状态。其中类与类之间要么有关系要么没关系,感觉这句话有点说的很无耻,谁都知道,但是其中奥妙在于很难确定类与类之间是否有关系。证明两个或者多个类是否存在关系涉及到业务、架构、模块边界的问题,然而由于业务模型的抽象角度不同而不同,确定他们是否有关系是一件很不简单的事情。

Java类有关系的6种情况继承:extends【is-a】

实现:implements【can do】

组合:类是成员变量【contain-a】

聚合:类是成员变量【is-a】

依赖:是除了组合与聚合外的单向弱关系。比如使用一个类的属性、方法,或以其作为方法的参数传入,或以其作为方法的返回值输出

【depends-a】

关联:相互是平等关系的依赖【links-a】

以上六种关系中继承和实现是很容易辨别的关系。但是在设计过程中要注意组合、聚合、依赖和关联这四个的区别。

继承:

继承关系包括子类和父类、子接口和父接口之间两种继承关系。用空心三角形和实线表示这种继承关系。

实现:

类和接口之间的关系,用空心三角形和虚线表示。

依赖:

A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。 由虚线和箭头表示

关联:

A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。

由实线和箭头表示。

聚合:

关联关系的一种特例,是整体和部分的关系,即has-a的关系。整体和部分之间是可分离的,拥有各自的生命周期。 和组合关系的整体和部分关系不同的是:该整体包含很多个部分,但这里的部分都是相同的。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。由空心菱形和实线箭头表示。

组合关系:

也是关联关系的一种特例,它体现一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分的关系,但这种整体和部分是不可分割的,他们具有相同的生命周期。 和聚合关系相比:这种部分和整体的关系表现为,整体包含该部分,但也包含其他部分,其他部分和该部分并不相同。比如cpu和计算机是组合关系,计算机包含cpu,但又不仅仅是cpu还有屏幕键盘等。其他的部分不和cpu是同样的。 由实心菱形和实线箭头表示。

参考:https://blog.csdn.net/zhujun_xiaoxin/article/details/78539010

java 类 关系_总结Java类关系相关推荐

  1. java教务系统类设计_基于Java EE体系的高校教务管理系统的设计开发

    <基于Java EE体系的高校教务管理系统的设计开发>由会员分享,可在线阅读,更多相关<基于Java EE体系的高校教务管理系统的设计开发(3页珍藏版)>请在人人文库网上搜索. ...

  2. java 类爆炸_设计模式系列·类爆炸之 Bridge 模式

    迷之微笑 经过 C 哥的精心指导,消息中心终于上线!代码运行了半个月,稳健无 bug . 王小二托着下腮,看着代码,一抹迷之微笑随之闪现^_^.作为一名有追求的码农,此时的快乐或许只有自己能懂. 消息 ...

  3. 怎样用java编写日志_用JAVA写一个日志类程序以供大家学习

    中华网络安全联盟    作者:jacoo    来源:本站原创    时间:2006-4-18 说明: 尽管JAVA类库和其他工具提供了不少的纪录程序运行状态的日志类,我发觉也 不是万能的,有时需要根 ...

  4. java类索引_《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合...

    讲完了class文件中的常量池,我们就相当于克服了class文件中最麻烦的模块了.现在,我们来看一下class文件中紧接着常量池后面的几个东西:访问标志.类索引.父类索引.接口索引集合. 1. 访问标 ...

  5. java jar 目录_将Java类路径中的所有jar包括在一个目录中

    有没有一种方法可以将所有的jar文件包含在类路径的目录中? 我正在尝试java -classpath lib / *.jar :. my.package.Program,它无法找到当然在这些罐子里的类 ...

  6. java 进程运行时间_将Java类作为子进程运行

    java 进程运行时间 我本周需要将Java类(而不是jar)作为子进程运行. 更确切地说,我想从测试内部产生一个新进程,而不是直接在测试内部(进程内)运行它. 我不认为这是幻想或复杂的事情. 但是, ...

  7. java虚拟机标志_《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合...

    讲完了class文件中的常量池,我们就相当于克服了class文件中最麻烦的模块了.现在,我们来看一下class文件中紧接着常量池后面的几个东西:访问标志.类索引.父类索引.接口索引集合. 1. 访问标 ...

  8. java动态类加载_实现Java动态类载入机制

    作 为 充 分 利 用Java 的 动 态 类 载 入 机 制 的 最 好 例 子, 带 有Java 扩 展 的Web 浏 览 器 根 据 请 求 从 网 络 或 本 地 文 件 系 统 中 动 态 ...

  9. java synchronized 类锁_【java】synchronized对象锁和类锁简介【图文教程】

    平凡也就两个字: 懒和惰; 成功也就两个字: 苦和勤; 优秀也就两个字: 你和我. 跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美! 关注微信 ...

最新文章

  1. D1net阅闻:思科占全球交换路由器53%市场份额
  2. Quartz.net官方开发指南 第二课:Jobs And Triggers
  3. 常见linux命令使用方法(二)
  4. 我的世界服务器反作弊不起作用,我的世界服务器反作弊怎么搞 | 手游网游页游攻略大全...
  5. php 验证qq密码错误,QQ输入正确密码却验证错误的解决办法
  6. 剑指-从尾到头打印链表
  7. Linux 用户名、主机添加背景色
  8. 免费开源的 .NET 分布式组件库 Exceptionless Foundatio
  9. 人工智能安全框架(2020年)
  10. django目录介绍
  11. 2021-2025年中国主动脉内球囊反搏装置行业市场供需与战略研究报告
  12. 2012、12、17
  13. Oracle odi 数据表导出到文件
  14. PHP正则表达式的快速学习方法
  15. Tcpping 替代ping测试网路延迟
  16. xmm1是什么器件_第三章基于Multisim10在模拟电路实验中的应用
  17. pcap文件格式及写pcap文件
  18. 简要介绍随机森林原理
  19. 路飞学城Python-Day23
  20. 计算机职称photoshop,职称计算机考试photoshop核心通关技巧

热门文章

  1. js为链接绑定点击事件并且附带return false;来阻止跳转
  2. GCT之数学公式(平面解析几何)
  3. 在新项目中要思考的技术点
  4. 2013/2/CSS文字的着重显示
  5. 信息学奥赛一本通 1120:同行列对角线的格 | OpenJudge NOI 1.8 02:同行列对角线的格子
  6. 信息学奥赛一本通(1152:最大数max(x,y,z))
  7. 数颜色(洛谷-P1903)
  8. 训练日志 2018.12.16
  9. 计算(信息学奥赛一本通-T1356)
  10. 拼数(洛谷-P1012)