java中类和类之间的关系


一、关联关系


在这里插入图片描述

  1. 单向关联:从一个类中可以访问另一个类的成员,有这个类的引用。
  2. 双向关联:两个类可以互相访问,互相有引用。
  3. 自身关联:本类中调用自身self or this.
  4. 多维关联:多个类互相之间有单向关联也有双向关联,还可以有自身关联,多个维度的关联。
  5. 一对多关联:一个类有多个类的引用。
  6. 多对多关联:多个类互相之间有单向关联也有双向关联。
  7. 当一个类的属性保存了对另一个类的一个实例的引用时,就产生了关联。

二、泛化关系:继承与实现


在这里插入图片描述
实现关系,类对接口的实现
在这里插入图片描述

  1. 在 UML 中, 泛化关系用来表示类与类, 接口与接口之间的继承关系。更准确的说是不仅有继承关系,还有类和接口的实现关系。
  2. 泛化关系包括继承关系和实现关系。

三、聚合关系


在这里插入图片描述

  1. 聚合关联是一种特殊的关联. 它表示类间的关系是整体与部分的关系. 简言之: 关联关系中的一个类描述了一个较大的事物, 它由较小的事物组成.
  2. 聚合关系中一个大类由多个小类组成,但是没有这个大类,这些小类可以再次聚合成另外一个大类而继续使用,这是与组合关系的区别。
  3. 聚合关系是关联关系的一种,是强的关联关系。
  4. 聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
  5. 聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同 一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
  6. 通俗的讲:“汽车”有一个引擎和四个轮胎,如果这个“汽车”毁了,它的引擎和 轮胎还可以安在别的汽车上。

四、组合关系


在这里插入图片描述

  1. 整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。
  2. 组合关系中一个大类由多个小类组成,没有这个大类,小类不能存在。
  3. 聚合关系是当描述一个大的事物时,大的事务可以包含小的事务,也可以不包含小的事物,比如图书馆和图书,而组合是一个大的事物的存在必须是由多个小的事务组成的,缺省了小的事务是不可以的。比如人与器官,人的器官可以移植,这是聚合关系;人与肢体,人没了,肢体便没有用了,这是组合关系。
  4. 组合关系是关联关系的一种,是比聚合关系还要强的关系。
  5. 它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。 通俗的讲:“人”有四个“肢体”,如果“人”死了,那么四个肢体也没有用处了。

五、依赖关系


在这里插入图片描述

  1. 对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系.
  2. 一个类在某个时刻会用到另一个类,那么这两个类就是依赖关系。是一种短暂的关系。
  3. 依赖关系也是类与类之间的联结
  4. 依赖总是单向的。
  5. 依赖关系在代码中中体现为局部变量、方法的参数或者对静态方法的调用。
  6. 比如,人在出行的时候会依赖车的关系。

六、is-a,is-like-a,has-a是什么


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值