20172316 2017-2018-2《程序设计与数据结构》第七周学习总结
教材学习内容总结
继承
- 定义:继承就是从现有类派生新类的过程。
- 继承具有单向性(马都是哺乳动物,哺乳动物不都是马)父类不可调用子类的方法和声明变量。
- 子类是一种更具体的父类。相当于在原来的蓝图上增加细节。
protected
修饰符,一种可见性修饰符,当一个变量或者方法声明为protected
可见性时,就可以被子类所引用。不光如此,同一个包里的其他任何类也可以使用。super
引用,类似this
引用,使用super
引用可以调用父类的构造方法。- 多继承,Java里只有单继承,跳过。
- 重写方法,子类中用同名的方法重写父类中的方法,使其功能发生改变。
- 影子变量,子类中设置的与父类中同名的变量,应避免使用。
- 类层次结构,继承机制具有传递性,子类可以有许多“祖先类”,表现起来像“族谱”什么的。
教材学习中的问题和解决过程
- 可见性到底是什么
书上讲的不甚详细,百度一下也不知所云,找了好久,找到这么一句话
可见性体现了方法和实例变量对其他类和包的访问控制
也就是说,这个属性决定了这个方法或变量能被哪种类引用?又有下图:
这下就理解的稍微好一点了
代码调试中的问题和解决过程
-
问题1:所有的硬币面值一定相同,这显然不对劲,单个读取时甚至出现了
-1
-
问题1解决方案:初步检查:代码中发现BUG,误用
indexof()
,应该使用get()
才对。
但是还没有完全解决
面值相同的问题依然存在,于是我在其中加入了一个face
的重新随机操作问题迎刃而解。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
-
错题1: In Java, arrays are
正确答案:B .objects
原因:英语水平过低。 -
错题2:If x is a char, and values is an int array, then values[x]
正确答案:D .casts x as an int based on x's ASCII value (for instance, if x is 'a' then it uses 97 and if x is 'z' then it uses 122)
原因:数组索引如果是char
,按照ASCII码表对应数字取int
值 -
错题3:If a and b are both int arrays, then a = b; will
正确答案:A .create an alias
原因:理解错误,误以为两者相同就是将b中的所有对象复制到a中去。 -
错题4:When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
正确答案:B .false
原因:对于浮点型不能这样使用。 -
错题5:A Java main method uses the parameter (String[ ] variable) so that a user can run the program and supply "command-line" parameters. Since the parameter is a String array, however, the user does not have to supply any parameters.
正确答案:A .true
原因:程序员(操作者)可以不输入命令行参数,我们平常就没有输入。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 195/195 | 1/4 | 20/20 | 对代码产生了很大兴趣 |
第二周 | 309/504 | 1/5 | 20/40 | 打字速度明显提升 |
第三周 | 311/815 | 2/7 | 25/65 | 无 |
第四周 | 474/1289 | 1/8 | 30/95 | 抗...抗压能力加强? |
第五周 | 260/1549 | 1/9 | 15/110 | 了解到预习的重要性 |
第六周 | 358/1907 | 2/11 | 20/130 | 打字速度明显提升 |
第七周 | 780/2687 | 2/13 | 15/145 | 学会使用JUnit |
结对互评传送门
(在博客下评论)
参考资料
- 《Java程序设计教程(第八版)》电子工业出版社
- 《使用码云和博客园学习简易教程》
- 《使用开源中国(码云)托管代码》