Java入门学习 46 对象的组合
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
例子
7
§4.6.2 关联关系和依赖关系的 UML 图
1 关联关系 2 依赖关系
8
§4.6 对象的组合
? 一个类可以把对象作为自己的成员变量,如果用这样的类 创建对象,那么该对象中就会有其它对象,也就是说该对 象将其他对象作为自己的组成部分,或者说该对象是由几 个对象组合而成。
? 如果一个对象a组合了对象b,那么对象a就可以委托对象 b调用其方法,即对象a以组合的方式复用对象b的方法。
注 在学习对象的组合时,一定要记住:一个类声明的两个对 象如果具有相同的引用,二者就具有完全相同的变量(见 4.3.4)。
2
例题
例子8展示了圆锥和圆的组合关系,圆锥的底是一个 圆,即圆锥有一个圆形的底。圆锥对象在计算体积时, 首先委托圆锥的底(一个 Circle 对象)bottom 调用 getArea() 方法计算底的面积,然后圆锥对象再计算出 自身的体积。 圆锥对象组合了 Circle 对象,可以委托所包含的对 象调用其方法,这样一来,圆锥对象对所包含的 Circle 对象的getArea() 方法的细节(计算圆面积的 算法细节)是一无所知的。
Circle.java , Circular.java , Example4_8.java
4
Βιβλιοθήκη Baidu题
5
例子
例子9 模拟手机和 SIM卡的组合关系。涉及的类如下: l SIM类负责创建 SIM卡SIM.java 。 l MobileTelephone 类负责创建手机 MobileTelephone.java ,手 机可以组合一个 SIM卡,并可以调用 setSIM (SIM card) 方法更改其 中的SIM卡。程序运行效果如图 4.20。 SIM.java , MobileTelephone.java , Example4_9.java
1
§4.6 对象的组合
通过组合对象来复用方法有以下特点。 (1)通过组合对象来复用方法也称“黑盒”复用,因为当前 对象只能委托所包含的对象调用其方法,这样一来,当前对象 对所包含的对象的方法的细节(算法的细节)是一无所知的。 (2)当前对象随时可以更换所包含的对象,即对象与所包含 的对象属于弱耦合关系。
3
例题
? 例子8中(运行效果如图4.15)模拟圆锥用圆作为底,涉及的 类如下。
– Circle类负责创建圆对象。 – Circular类负责创建圆锥对象, 该圆锥对象可以调用方法
setBottom(Circle c)
将 Circle类的实例: 即“圆”对象的引用 传递给 自己所组合 Cirlce 类型的对象 bottom – 圆锥对象的 Circle 类型的成员变量
例子
7
§4.6.2 关联关系和依赖关系的 UML 图
1 关联关系 2 依赖关系
8
§4.6 对象的组合
? 一个类可以把对象作为自己的成员变量,如果用这样的类 创建对象,那么该对象中就会有其它对象,也就是说该对 象将其他对象作为自己的组成部分,或者说该对象是由几 个对象组合而成。
? 如果一个对象a组合了对象b,那么对象a就可以委托对象 b调用其方法,即对象a以组合的方式复用对象b的方法。
注 在学习对象的组合时,一定要记住:一个类声明的两个对 象如果具有相同的引用,二者就具有完全相同的变量(见 4.3.4)。
2
例题
例子8展示了圆锥和圆的组合关系,圆锥的底是一个 圆,即圆锥有一个圆形的底。圆锥对象在计算体积时, 首先委托圆锥的底(一个 Circle 对象)bottom 调用 getArea() 方法计算底的面积,然后圆锥对象再计算出 自身的体积。 圆锥对象组合了 Circle 对象,可以委托所包含的对 象调用其方法,这样一来,圆锥对象对所包含的 Circle 对象的getArea() 方法的细节(计算圆面积的 算法细节)是一无所知的。
Circle.java , Circular.java , Example4_8.java
4
Βιβλιοθήκη Baidu题
5
例子
例子9 模拟手机和 SIM卡的组合关系。涉及的类如下: l SIM类负责创建 SIM卡SIM.java 。 l MobileTelephone 类负责创建手机 MobileTelephone.java ,手 机可以组合一个 SIM卡,并可以调用 setSIM (SIM card) 方法更改其 中的SIM卡。程序运行效果如图 4.20。 SIM.java , MobileTelephone.java , Example4_9.java
1
§4.6 对象的组合
通过组合对象来复用方法有以下特点。 (1)通过组合对象来复用方法也称“黑盒”复用,因为当前 对象只能委托所包含的对象调用其方法,这样一来,当前对象 对所包含的对象的方法的细节(算法的细节)是一无所知的。 (2)当前对象随时可以更换所包含的对象,即对象与所包含 的对象属于弱耦合关系。
3
例题
? 例子8中(运行效果如图4.15)模拟圆锥用圆作为底,涉及的 类如下。
– Circle类负责创建圆对象。 – Circular类负责创建圆锥对象, 该圆锥对象可以调用方法
setBottom(Circle c)
将 Circle类的实例: 即“圆”对象的引用 传递给 自己所组合 Cirlce 类型的对象 bottom – 圆锥对象的 Circle 类型的成员变量