JAVA之类和类的关系

 1、依赖关系。
1>定义
    一:可以简单的理解,类A依赖于类B就是类A使用到了类B,类B的变化会影响到类A
    二:这种关系一般是偶然性的、临时性的、非常弱的
    三:依赖关系总是单向的
    四:表现在代码层面,类B作为参数或局部变量被类A在某个method方法中使用,此时类A依赖于类B

2>UML表示
    类A依赖于类B,用由类A指向类B的带箭头虚线表示 


2、关联关系。
1>定义
    一:关联是类和类之间的一种强依赖关系
    二:这种关系一般具有长期性
    三:关联可以是单向、双向的
    四:关联可分为一对一关联、一对多关联、多对多关联
    五:表现在代码层面
    六:被关联类B以类的属性形式出现在关联类A中
    七:关联类A引用了一个类型为被关联类B的全局变量


2>UML表示
    一:用带箭头实线表示,箭头指向被关联类
    二:若是双向关联,实线两端可不带箭头 



3、聚合关系。
1>定义
    一:关联关系的一种特例
    二:体现的是整体与部分的关系,即has-a的关系,整体与部分之间可分离,具有各自的生命周期
    三:比如计算机与CPU、公司与员工、班级和学生、比如航母编队包括航空母舰、驱护舰艇、舰载飞机等
    四:表现在代码层面,和关联关系是一致的,只能从语义级别来区分
2>UML表示
    以空心菱形加实线箭头表示。(有些设计软件如visio中,实线不带箭头)


4、组合关系。
1>定义
    一:也是关联关系的一种特例,体现的是一种contains-a的关系, 比聚合更强,也称为强聚合
    二:体现整体与部分间的关系,但整体与部分具有相同生命周期,一旦整体对象不存在,部门对象也将不存在
    三:比如人和人的四肢
    四:表现在代码层面,和关联关系是一致的,只能从语义级别来区分
2>UML表示
    以实心菱形加实线箭头表示。(有些设计软件如visio中,实线不带箭头)  


5、小结。
1>类和类的关系
    继承(泛化 generalization )
    实现(realization)
    依赖(dependency)
    关联(association)
    聚合(aggregation)
    组合(composition)
2>强调 
    聚合、组合是关联的特殊形式,从语义上区分
    总体来说,关系强弱程度上依赖<关联<聚合<组合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值