零基础Java学习笔记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.6 对象的组合

img

如果一个类把某个对象作为自己的一个成员变量,则在使用这样的类创建对象后,该对象中就会有其他对象,也就是说,该类对象将其他对象作为自己的一部分。

4.6.1 组合与复用

如果一个对象a 组合了另一个对象b,则对象a 可以委托对象b 调用其方法,即对象a 以组合的方式复用对象b 的方法。

【例4.6】 计算圆锥的体积。

圆锥底面圆Circle 类的具体代码如下:

img
img

圆锥Circular 类的具体代码如下:

img

测试类Example3 的具体代码如下:

img

程序运行结果如图4.10 所示。

img

图4.10 圆锥体积的计算结果

4.6.2 类的关联关系和依赖关系的UML 图

1.关联关系

如果A 类中的成员变量使用B 类声明的对象,则A 类和B 类的关系是关联关系,称A 类的对象关联于B 类的对象或A 类的对象组合了B 类的对象。如果A 类的对象关联于B 类的对象,则UML 图使用一条实线连接A 类和B 类的UML 图,实线的起始端是A 类的UML 图,终止端是B 类的UML 图,但终止端使用一个指向B 类的UML 图的方向箭头表示实线的结束。关联关系的UML 图如图4.11 所示。

2.依赖关系

如果A 类中某个方法的参数使用B 类声明的对象或A 类中某个方法返回的数据类型是B 类对象,则A 类和B 类的关系是依赖关系,称A 类依赖于B 类。如果A 类依赖于B类,则UML 使用一条虚线连接A 类和B 类的UML 图,虚线的起始端是A 类的UML 图,终止端是B 类的UML 图,但终止端使用一个指向B 类的UML 图的方向箭头表示虚线的结束。依赖关系的UML 图如图4.12 所示。

img

图4.11 关联关系的UML 图

img

图4.12 依赖关系的UML 图