# 20182335 2019-2020-1 《数据结构与面向对象程序设计》第六周学习总结

教材学习内容总结

第九章

1、后绑定:多态引用可以指向不同类型在不同的时候的对象、在运行时才将方法调用与它的定义绑在一起;

2、通过继承实现多态:引用变量可以指向声明继承于它的任意类的对象;

3、接口:接口层次,Comparable接口,Iterator接口;

4、通过接口实现多态:事件处理

第十章

1.对异常的处理。

2.try-catch语句。

3.finally语句。

4.有关异常的类及其层次。

5.必检异常和免检异常的区别和联系。

6.I/O异常。

教材学习中的问题和解决过程

  • 问题1:对于comparable接口的意义和用法不太理解。
  • 问题1解决方案:通过上网查阅博客,通过对什么是comparable接口?能实现什么方法?
    以及实例,对comparable接口有了一定的了解。
  • 问题2:不捕获异常中,提到了调用栈跟踪这一概念。不清楚什么是栈跟踪。
  • 问题2解决方案:课本上说,第一行首先抛出异常并给出原因,其余的行是调用栈跟踪,就是指出异常发生的位置。栈跟踪指出了异常发生的位置,而调用则把这一异常的位置显示了出来。我看了一篇有关Java异常的博文,其中提到了栈跟踪元素,这有助于理解这一概念。

代码调试中的问题和解决过程

  • 问题1:问题1、与书上代码一致却因count无法通过编译
  • 问题1解决方案:将count删除即可。
  • 问题2:程序10.1,按照教程输入代码,输出的结果与书上有区别。只是有第一行的打印出来的结果,却没有显示出接下来的代码存在的异常而直接结束。
  • 问题2解决方案:尝试更改代码。

代码托管

上周考试错题总结

  • 错题1:Both the Insertion Sort and the Selection Sort algorithms have efficiencies on the order of ________ where n is the number of values in the array being sorted.

A .n

B .n * log n

==C== .n^2

D .n^3

E .Insertion sort has an efficiency of n and Selection Sort has an efficiency of n^2

解析:两种排序算法都使用两个嵌套循环,每个循环都执行大约n次,这给两者都带来了N*N或N ^ 2的复杂性。

错题2:Polymorphism is achieved by

A .overloading

==B== .overriding

C .embedding

D .abstraction

E .encapsulation

解析:重载只是为具有不同参数列表的方法提供了替代方法。重写提供多态性,因为根据当前被引用的对象调用适当的方法。嵌入是类内类的封闭。抽象与多态性无关。使用可见性修饰符(public、private、protected)实现封装。

  • 错题3:We compare sorting algorithms by examining

==A== .the number of instructions executed by the sorting algorithm

B .the number of instructions in the algorithm itself (its length)

C .the types of loops used in the sorting algorithm

D .the amount of memory space required by the algorithm

E .whether the resulting array is completely sorted or
only partially sorted

不同的排序算法在执行时需要不同数量的指令。例如,选择排序通常需要比插入排序更多的指令。因此,我们将排序算法按执行排序数组所需的指令数进行比较。我们可以计算排序算法在最坏情况下执行的指令的最大数量,或者最佳情况下的最小数量,或者平均执行指令的数量。如果两个排序算法需要大致相同数量的指令来对数组进行排序,那么我们还可以检查所需的内存空间量。

错题4:Can a program exhibit polymorphism if it only implements early binding?

==A== .Yes, because one form of polymorphism is overloading

B .No, because without late binding polymorphism cannot be supported

C .Yes, because so long as the programs uses inheritance and/or interfaces it supports polymorphism

D .Yes, because early binding has nothing to do with polymorphism

E .none of the above

解析:虽然继承和接口支持多态性,但它们只在具有后期绑定的情况下才支持多态性。但是,重载是多态的一种形式,一个(方法)名,多个体只要程序使用重载,多态就在使用中。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评:

点评过的同学博客和代码:

20182311

其他(感悟、思考等,可选)

本周的学习内很多,结合教材和网课视频,我感觉我对这部分的知识理解还s是不怎么理解,还有些学习任务没有很好地完成,争取早日完成。学习这种事情不能拖拉,而且需要及时去复习,每次测试我感觉都有很多内容好像没有见过,错题也比较多,以后的学习还是多以复习为主,老师给的资料对学习很有帮助,也要认真地看。这一周事情还是一如既往地多,以后的学习中还要加油努力。继续努力,保持专注。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 325/500 2/4 18/38
第五周 600/1000 3/7 22/60
第六周 300/1000 3/7 18/38

参考资料

猜你喜欢

转载自www.cnblogs.com/lijinquan/p/11681688.html