004第1章 对象导论1.8单根继承结构、1.9容器、1.9.1参数化类型

1.8 单根继承结构
是否所有的类最终都继承自单一的基类。
在Java中(事实上还包括除C++以外的所有OOP语言),答案是yes,这个终极基类的名字就是Object。
事实证明, 单根继承结构带来了很多好处。
在单根继承结构中的所有对象都具有一个共用接口,所以它们归根到底都是相同的基本类型。
另一种(C++所提供的)结构是无法确保所有对象都属于同一个基本类型。
单根继承结构保证所有对象都具备某些功能。
因此你知道,在你的系统中你可以在每个对象上执行某些基本操作。
所有对象都可以很容易地在【堆】上创建,而【参数传递】也得到了极大的简化。
单根继承结构使【垃圾回收器】的实现变得容易得多,而垃圾回收器正是Java对C++的重要改进之一。
这对于系统级操作(如异常处理)显得尤其重要,并且给编程带来了更大的灵活性。

1.9 容器
对于面向对象设计中的大多数问题而言,这个问题的解决方案似乎过于轻率:创建另一种对象类型。
这种新的对象类型持有对其他对象的引用。
当然,你可以用在大多数语言中都有的数组类型来实现相同的功能。
但是这个通常被称为容器(也称为集合,不过Java类库以不同的含义使用“集合”这个术语,所以本书将使用“容器”,这个词)的新对象,
在任何需要时都可扩充自己以容纳你置于其中的所有东西。
因此不需要知道将来会把多少个对象置于容器中,只需要创建一个容器对象,然后让它处理所有细节。
幸运的是,好的OOP语言都有一组容器,它们作为开发包的一部分。
Java)中,具有满足不同需要的各种类型的容器,
例如List(用于存储序列),Map(也被称为关联数组,用来建立对象之间的关联),Set(每种对象类型只持有一个),以及诸如队列、树、堆栈等更多的构件。

设计的观点来看,真正需要的只是一个可以被操作,从而解决问题的序列。
如果单一类型的容器可以满足所有需要,那么就没有理由设计不同种类的序列了。
然而还是需要对容器有所选择,这有两个原因。
第一,不同容器提供了不同类型的接口和外部行为。
堆栈相比于队列就具备不同的接口和行为,也不同于集合和列表的接口和行为。
它们之中的某种容器提供的解决方案可能比其他容器要灵活得多。
第二,不同的容器对于某些操作具有不同的效率。
最好的例子就是两种List的比较: ArrayList和 LinkedList 。
我们可以在一开始使用LinkedList构建程序,而在优化系统性能时改用ArrayList。
接口List所带来的抽象,把在容器之间进行转换时对代码产生的影响降到最小限度。

1.9.1 参数化类型<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值