20162311 2016-2017-2 《程序设计与数据结构》第七周学习总结
教材学习内容总结
1、什么是多态
2、接口的定义与实现
3、继承可适用于接口
4、通过接口实现多态
教材学习中的问题和解决过程
-
问题1:教材上有个知识点是通过继承实现多态,如果Mammal类是Horse类的父类,则Mammal引用是可以指向Horse类的对象,有以下代码
Mammal pet; Horse secretariat = new Horse(); pet = secretariat; // a valid assignment
我开始并不理解。
- 解决方案:老师在蓝墨云班课上有个视频是讲对象的转型,我的理解是这就是一种向上转型。
代码调试中的问题和解决过程
- 问题1:在编译书上代码的时候总出现错误
可是我并没有打错 - 解决方案:因为9.1到9.7是关联在一起的,所以我看了这几个程序,发现count这个变量没有被声明过。于是我把
count--
给删除了,编译就能通过了,看来是书上的代码有错。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
第五周测试
-
错题1:
(多选题|1分) 下面哪条命令可以把 f1.txt 复制为 f2.txt ? A .cp f1.txt f2.txt B .copy f1.txt f2.txt C .cat f1.txt > f2.txt D .cp f1.txt | f2.txt E .copy f1.txt | f2.txt 正确答案: A C 我的答案: A copy是Windows下的命令。cat f1.txt > f2.txt 通过输出重定向实现了复制。
-
错题2:
如果有以下程序片段: class Some{ String ToString(){ return "Some instance"; } } public class Main{ public static void main(String[] args){ Some some = new Some(); System.out.println(some); } } 以下描述正确的是 A .显示Some Instance B .显示Some@XXXX,XXXX为十六进制的数字 C .发生ClassCastException D .编译失败 正确答案: B 你的答案: D
第六周测试
-
错题1:
如果有以下的程序代码: int[] arr1 = {1, 2, 3}; int[] arr2 = new int[arr1.length]; arr2 = arr1; for(int value : arr2) { System.out.printf("%d", value); } 以下描述何者正确? A . 执行时显示123 B . 执行时显示12300 C . 执行时出现 ArrayIndexOutOfBoundException 错误 D . 编译失败 正确答案: A 按十进制打印数组arr2中的元素。
-
错题2:
如果有以下的程序代码: Int x=100; Int y=100; Integer wx=x; Integer wy=y; System.out.println(x==y); System.out.println(wx==wy); 在JDK5以上的环境编译与执行,则显示的结果是 A .true、true B .true、false C .false、true D .编译失败 正确答案: A Integer是包装类,`Integer wx=x`可以自动解析出int类型。
-
错题3:
如果有以下的程序代码: String [][] strs={ {“Java”,“Java”,“Java”} ; {“Java”,“Java”,“Java”,“Java”}; }; For(______ row:strs){ For(____ str:row){ ......... } } 空白处应该分别填上 A .String、String B .String、String[] C .String[]、String D .String[]、String[] 正确答案: C 本题定义了一个二维数组,循环是打印出二维数组的元素,而其中的元素又是数组,类似于错题1中的for (int value:arr2)
结对及互评
点评模板:
- 博客中值得学习的或问题:
- 提出的问题和解决方法过于简单
点评过的同学博客和代码
- 本周结对学习情况
- 20162325
- 结对学习内容
- 使用IDEA进行单元测试
- 如何以TDD的形式开发新类
- 上周博客互评情况
感悟
本周教材上的内容并不多,看了老师给的视频基本上就能理解了。所以主要精力还是放在了实验上。IDEA之前装过,但做实验的时候发现过期了,只能重新下载一个,在尝试实验过程中遇到很多问题,在老师的指导下一步步解决,加深了我对这些知识的理解。这次实验暴露出的最大问题就是,实践太少,真正自己编的程序太少,所以遇到一些问题不能及时的解决,而且我发现其他一些同学也有同样的问题。所以在今后的学习中要加强实践,书上的内容结合老师给的视频可以很快弄懂,但要真正的运用起来还是需要自己多动手写代码,而且不能是照着别人的代码抄,必须有自己的想法和思路,这样才能掌握Java这门语言。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 113/113 | 1/1 | 10/10 | |
第二周 | 294/407 | 1/2 | 15/25 | |
第三周 | 433/840 | 1/3 | 15/40 | |
第四周 | 1169/2009 | 2/5 | 30/70 | |
第五周 | 825/2834 | 1/6 | 15/85 | |
第六周 | 331/3165 | 1/7 | 13/98 | |
第七周 | 738/3903 | 2/9 | 22/120 |
计划学习时间:15小时
实际学习时间:22小时
改进情况:这周因为有实验,所以花的时间要多一些。教材的学习比较顺利。