标签:iat 其它 font nbsp 类的属性 需要 dep 初始 关系
在面向对象的程序设计中,引导我们的基本思想就是:“一切皆对象”。那么我们可以把对象与对象的关系总体分为四类。分别是:依赖、关联、聚合和组合。首先我们先看一下 书上的定义:
——摘自《Java面向对象编程》
1.依赖:
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;
class A{
public void fun_A(){
........
}
}
class B{
//使用参数方式发生与A的依赖关系
public void fun(A a){
a.fun_A();
}
//使用创建对象的方式与A发生依赖关系
public void fun(){
A a = new A();
a.fun_A();
}
}
2.关联
关联是一种“拥有”的关系。表现在代码上,就是一个类包含另一个类的实例,通常表现为被关联类以类属性的形式出现在关联类的类定义中,也可以表现为关联类引用了一个类型为被关联类的全局变量。关联可以使单向的,也可以使双向的。依赖和关联的区别在于依赖是使用,关联是拥有.
class A{ public void fun_A(){ ............ } } class Person{ private A a ; public Person(A a){ this.a = a ; } public void work(){ a.fun_A() ; }
}
3.聚合
聚合是关联关系的一种,它是一种强关联关系(has-a);聚合关系是整体和个体/部分之间的关系;关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;表现在代码层面上就是在构造器初始化时将两个类关联起来。代码如下:
class A{ } class B{ private A a ; //与上面关联的代码不同之处在于构造B时必须同时构造B,也就是说B是A的不可缺少的一部分 public B(A a){ this.a = a ; } }
4.组合
组合也是关联关系的一种(is-a),但它是比聚合关系更强的关系.组合关系要求聚合关系中代表整体的对象要负责代表个体/部分的对象的整个生命周期;组合关系不能共享;在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;
class A{ ........... } class B{ private A a; public B(){ a = new A() ; } }
总结:
聚合和组合的区别:聚合是个体离开了整体,依然可以存在.
组合是个体和整体不可以分开,个体不能离开整体单独存在.
依赖,关联 和聚合,组合的区别:依赖,关联 : 类之间的关系是在同一层次上.
聚合,组合: 类之间的关系表现为整体和部分.
标签:iat 其它 font nbsp 类的属性 需要 dep 初始 关系
原文地址:https://www.cnblogs.com/shuaiblog/p/9045013.html