20162304 2017-2018-1 《程序设计与数据结构》第二周学习总结
教材学习内容总结
- Java中泛型类的学习
教材学习中的问题和解决过程
- 问题1:对泛型概念不太理解
- 问题1解决方案:通过搜索得知答案:就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
点评过的同学博客和代码
- 本周结对学习情况
- 结对照片
- 结对学习内容
泛型的学习
内容总结
- 为什么需要泛型
- 泛型可以使集合能够记住集合内元素各类型,且能够达到只要编译时不出现问题,运行时就不会出现“java.lang.ClassCastException”异常。
- 自定义泛型接口、泛型类和泛型方法
- 在使用泛型类时,虽然传入了不同的泛型实参,但并没有真正意义上生成不同的类型,传入不同泛型实参的泛型类在内存上只有一个,即还是原来的最基本的类型(本实例中为Box),当然,在逻辑上我们可以理解成多个不同的泛型类型。
- 对此总结成一句话:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。
- 类型通配符
- 类型通配符一般是使用 ? 代替具体的类型实参。注意了,此处是类型实参,而不是类型形参!且Box<?>在逻辑上是Box、Box...等所有Box的父类。由此,我们依然可以定义泛型方法,来完成此类需求。
其他(感悟、思考等,可选)
这一周的学习书上找不到对应的内容,主要是通过网上学习,希望可以更加进步。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二周 | 0/0 | 1/2 | 10/20 |
计划学习时间:12小时
实际学习时间:10小时