20182322 2019-2020-1 《数据结构与面向对象程序设计》第6周学习总结
教材第9章学习内容总结
- 后绑定 绑定发生在程序执行过程中,即绑定动作在执行期进行。java中的所有method,除final method之外,皆使用后期绑定的方式;效率低一些
- 通过继承实现多态 引用变量可以指向声明继承于它的任意类的任何对象。对象的类型,而不是引用的类型,决定调用是方法的哪个版本
- 接口 是一组常量和抽象方法
- 通过接口实现多态
教材第10章学习内容总结
- 异常处理
- 不捕获异常
- try-catch语句
- 异常传播
- 异常类的层次
- I/O异常
教材学习中的问题和解决过程
- 问题1:程序10.2中提到了一个方法,叫Integer parseInt,不清楚这个方法的含义。
- 问题1解决方案:查找相关概念,Integer指的是一个整数对象,而int指的是基本数据类型,这个方法是将整形对象Integer转换成基本数据类型int(整数)。
- 问题2:教材9.5例子中为什么用super能引用eName等等对象而不用this来指示引用当前继承于对象的的对象和变量?
- 问题2解决方案:再读第八章,可以看到super除了能引用父类构造方法外也能够引用父类的任意对象。此处this也是应该可以使用的。声明this.eName=eName。
- 问题3:教材中提到的for循环当中的foreach用法,不清楚它的含义。
- 问题3解决方案:查找相关概念,我知道了foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。在其他语句的语法规则中使用的是foreach,而在Java当中则是使用的for,其实就是基本的for语句。
- 问题4:多态的实现有什么必要条件?
- 问题4解决方案:一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
代码调试中的问题和解决过程
- 问题1:TestData 编译成功,但运行错误
- 问题1解决方案:去看答疑论坛看是否有解决办法。上网查找。在src 下新建目录,将它与第十章其他的内容放在一起,进行编译运行。
- 问题2:创建子类后运行原程序提示找不到文件
- 问题2解决方案:子类要与原程序放在同一个文件夹中
- 问题3:在IDEA做Double类时不成功
- 问题3解决方法:没有在虚拟工厂中实例化
- 问题4:书上程序10.2的时候不明白其中划线代码的意思。
- 问题4解决方案:上网查阅资料得
代码托管
上周考试错题总结
- Which of the following lists of numbers would accurately show the array {9,4,12,2,6,8,18} after the first pass through the Selection Sort algorithm?解析:在“选择排序”的每个连续遍历中,找到最小的未排序值并与当前数组索引交换(当前索引从0开始,一直到数组的第二个位置)。在第一遍中,最小的元素2与索引0交换,因此2和9交换位置。错的原因时没看懂题目
- The type of the reference, not the type of the object, is use to determine which version of a method is invoked in a polymorphic reference.解析:本来选对的,但点错了
- Binary search can be used on unsorted data it will just perform more slowly.解析:上网查阅资料得二进制搜索仅在数据已排序时才有效。二进制搜索算法通过假设在每对数据元素之间存在严格的关系来进行升序或降序。没有此顺序,二进制搜索将无法正确运行。
- Assume infile is a BufferedReader for a textfile and that the textfile is empty. What is returned from the message infile.readLine( ); ?解析:readLine()方法返回一个字符串,该字符串等于文件中的下一个文本项。如果文件为空,则返回null。
- When a program terminates because a thrown exception is not handled, the program解析:知识盲区,如果在程序中的任何地方都未捕获到引发的异常,则程序将终止,并显示运行堆栈跟踪的内容。运行堆栈跟踪中的第一项是引发的异常和引发的异常(引发异常的类的方法的行号)。
- The difference between a checked and an unchecked exception is
解析:必须捕获已检查的异常,或者必须在throws子句中列出该异常。未检查的异常不需要throws子句。两种异常都遵循异常传播的规则。 - Which statement is true about BufferedWriters解析:看不懂题目。查阅资料得提供BufferedWriter是在执行过程中提高程序效率的一种方法。它们允许累积输出,直到缓冲区已满,并且变得“值得”启动输出操作为止。
结对及互评
评分标准
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
代码调试中的问题和解决过程, 一个问题加1分
-
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
-
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
-
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评模板:
-
博客中值得学习的或问题:
- 排版工整
- 对问题都深入研究
-
代码中值得学习的或问题:
- 代码有自己的理解
- 代码排列不大美观
-
基于评分标准,我给本博客打分:9分。得分情况如下:
-
正确使用Markdown语法+1.
-
教材学习中的问题和解决过程+2.代码调试中的问题和解决过程+2.
-
感想,体会不假大空+1.
-
错题学习深入+1.
-
点评认真.课后题有验证+1.
-
进度条有记录+1.
点评过的同学博客和代码
- 上周博客互评情况
其他(感悟、思考等,可选)
- 学习内容越来越深入,前面积累和后面不会的问题越来越多,需要再多花时间学习JAVA.
- 老师进度开始加快,需要课前预习,不然课上就完全听不懂。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 59/200 | 2/2 | 20/20 | |
第三周 | 292/331 | 2/4 | 20/40 | |
第四周 | 677/969 | 2/4 | 20/60 | |
第五周 | 661/1265 | 2/4 | 20/80 | |
第六周 | 1299 /2554 | 2/4 | 20/100 |
-
计划学习时间:20小时
-
实际学习时间:20小时