Think in java学习笔记-第6章 Composition

6 合成

一、合成的语法

对象引用初始化,可在下面这些地方进行:
(1)
在对象定义的时候。这意味着它们在构建器调用之前肯定能得到初始化。
(2)
在那个类的构建器中。
(3)
紧靠在要求实际使用那个对象之前。这样做可减少不必要的开销——假如对象并不需要创建的话。

Bath.java

在类内作为字段使用的基本数据会初始化成零;对象句柄会初始化成null,而且假若试图为它们中的任何一个调用方法,就会产生一次违例

例:SprinklerSystem.java

二、什么时候使用合成

如果想利用新类内部一个现有类的特性,而不想使用它的接口,通常应选择合成。也就是说,我们可嵌入一个对象,使自己能用它实现新类的特性。但新类的用户会看到我们已定义的接口,而不是来自嵌入对象的接口。考虑到这种效果,我们需在新类里嵌入现有类的private对象。

例:Car.java

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值