入门计算机的粗略学习-Day8

继续UML图

上次讲了三种关联关系,这次讲下后三种
自关联
在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。例如,一个节点类(Node)的成员又是节点 Node类型的对象,如下图所示。
这种就是自己包含着自己的类,可以理解为节点中包含着子节点。
在这里插入图片描述
聚合关系
聚合(Aggregation)关系表示整体与部分的关联关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。在UML中,聚合关系用带空心菱形的直线表示。例如,汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此汽车和发动机是聚合关系,如图所示
在这里插入图片描述
组合关系
组合(Composition)关系也表示类之间整体和部分的关联关系,但是在组合关系中,整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有“同生共死”的关系。在UML中,组合关系用带实心菱形的直线表示。例如,人的头部(Head)与嘴(Mouth),嘴是头部的组成部分,如果头部不 存在,那么嘴也就不存在了,因此头部和嘴是组合关系,如图所示。
在这里插入图片描述
在用代码实现组合关系时,通常在整体类的构造方法中直接实例化 成员类。成员对象域整体对象有同样的生命周期,也就是要“共生死”,这也是组合和聚合的主要区别。

类的泛化关系
泛化(Generalization)关系也称为继承关系,用于描述父类与子类之间的关系。父类称为基类或超类,子类称为派生类。在UML中,泛化关系用带空心三角形的直线来表示。在代码实现时,我们使用面向对象的继承机制来实现泛化关系,例如,在Java语言中使用extends关键 字。
举例说明,Student类和Teacher类都是Person类的子类,Student类和Teacher类继承了Person类的属性和方法,Person类的属性包含姓名 (name)和年龄(age),每一个Student和Teacher也都具有这两个属性。另外,Student类增加了属性学号(studentNo),Teacher类增加了属性教师编号(teacherNo),如图所示。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值