栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一文搞懂Java 中类的组合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一文搞懂Java 中类的组合

什么是类的组合?

在一个类的内部,以一个对象(引用)作为域变量

例如:

class A(){
	B b; //A的域变量
	say(){
		b.speak();
	}
}
class B(){
	int x;
	speak(){};
}

虽然A和B是两个独立的对象,但是A对象中有B的对象(引用),就可以通过A操纵B,所以就可以看成是A对象由B对象组合而成。

如上述代码所示,A对象可以通过调用b的方法实现自己的方法,可以实现类的复用。(并且组合优于继承)

组合有什么用?

无疑:①可以实现类的复用

继承也可以实现类的复用,那么为什么还要用组合呢?

其实,你仔细想想,将生活中的事物抽象成类,类与类之间并不都是父与子的关系,所以所有类的复用都采用继承关系明显是不恰当的

例如:定义了一个喇叭类,有发出声音的功能,再定义一个手机类,手机发出声音的方法想复用喇叭类,就可以将喇叭类的对象作为手机类的属性,通过操纵喇叭类的对象实现手机发生的功能,这就是类的组合(可以看成是手机由喇叭组成)

如果让手机继承喇叭来实现类的复用,显然是不合理的(二者并不是父子关系)

从上述的举例中我们也可以看出,手机对象是通过操纵喇叭对象来实现发声的,这种操纵(引用)是由访问控制权限保护的(喇叭类的私有成员并不会被公开),因此,②使得对象之间耦合性较为疏散。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号