专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 怎么理解Java中类之间的6种关系

怎么理解Java中类之间的6种关系

更新时间:2019-12-10 16:25:46 来源:赢咖4 浏览2306次

 

  什么是关系?

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

  Java类有关系的6种情况

  继承:extends【is-a】

  实现:implements【can do】

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

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

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

  【depends-a】

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

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

  继承:

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

怎么理解Java中类之间的6种关系.png

  实现:

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

 

怎么理解Java中类之间的6种关系.png

  依赖:

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

 

怎么理解Java中类之间的6种关系.png

  关联:

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

  由实线和箭头表示。

怎么理解Java中类之间的6种关系.png

  聚合:

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

怎么理解Java中类之间的6种关系.png

  组合关系:

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

怎么理解Java中类之间的6种关系.png

       以上就是赢咖4注册机构小编介绍的“怎么理解Java中类之间的6种关系”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>