20172318 2017-2018-2 《程序设计与数据结构》第8周学习总结

20172318 2017-2018-2 《程序设计与数据结构》第8周学习总结

教材学习内容总结

  • 后绑定:延迟到程序执行时的一个方法调用与一个方法定义的绑定
  • 由继承实现多态性:一个引用变量可以指向有继承关系的任何类的任何对象,实际将调用的方法取决于对象的类型而不是引用变量的类型
  • 利用接口实现多态性:接口名可以用于声明对象引用变量,一个接口引用变量可以指向实现该接口的任何类的任何对象
  • 方法的参数可以是多态性的,使得方法所接收对象的参数具有灵活性
  • 选择法排序:选择法排序算法通过相继的将各值放在自己的最终位置(排序后的位置)来实现数值的有序排列
  • 插入法排序:不断地将新元素插入到已排好序的数列子集中
  • 以多态性方式实现的排序算法可对任何一组可比较的对象排序
  • 排序算法的比较:如果一种算法执行的比较操作比另一种更多,则前者是效率更低的算法
  • 线性搜索:从数列的起点开始,将目标元素依次与每一个值进行比较,最终找到目标元素,或者搜索到数列的终点后发现数列中不存在目标元素
  • 二分搜素:从有序数列的中点开始搜索,如果中点元素不是目标元素,则继续搜索
  • 多态性允许用一样的方法实现不一样的行为

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

  • 问题1:对于Sorting类如何进行升序排列不是很清楚
  • 问题1解决方案:在内部循环中list[scan].compareTo(list[min]) < 0表示将该值与最小值比较,小于则将该值赋予最小的索引,外层循环将索引值加一,一次次地循环就可以得到升序排列
  • 问题2:对于二分搜索找到两个中点值的处理情况不清楚
  • 问题2解决方案:课本后来提到中点计算将忽略小数部分,取两个中点的第一个为新的中点如19的数列要找到7,会在确认5不是目标元素后向69的中点搜索,这时中点为7.5,会忽略小数部分,找到目标元素7

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

  • 问题1:pp10.1

  • 问题1解决方案:要求使用Payable接口实现多态性,而我只定义了接口,后来发现需要在Staff类中接上才能完成

  • 问题2:pp10.4降序排列

  • 问题2解决方案:理解了升序排列是将最小值赋予最小的索引,后来修改了一下就可以将最大值赋予最小的索引获得降序排列

代码托管

上周考试错题总结

  • 错题1及原因,理解情况
    Polymorphism is achieved by
    A . overloading
    B . overriding
    C . embedding
    D . abstraction
    E . encapsulation
    选B,多态性靠重写实现
  • 错题2及原因,理解情况
    Comparing the amount of memory required by selection sort and insertion sort, what can one say?
    A . Selection sort requires more additional memory than insertion sort
    B . Insertion sort requires more additional memory than selection sort
    C . Both methods require about as much additional memory as the data they are sorting
    D . Neither method requires additional memory
    E . None of the above
    选D,两种方法都不需要额外内存
  • 错题3及原因,理解情况
    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
    选A,重载也是多态性的一种形式
  • 错题4及原因,理解情况
    It is possible to sort an array of int, float, double or String, but not an array of an Object class such as a CD class.
    A . true
    B . false
    选B,这题答题想的是B,应该是手滑选了A,可以对对象数组进行排序
  • 错题5及原因,理解情况
    A reference variable can refer to any object created from any class related to it by inheritance.
    A . true
    B . false
    选A,一个引用变量可以指向有继承关系的任何类的任何对象,课本原话

点评模板:

  • 博客中值得学习的或问题:
    • 对教材内容解析的非常到位
  • 代码中值得学习的或问题:

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172312
    • 结对学习内容
      • 课本第九章
      • 实验2
  • 上周博客互评情况

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

课本简单实验难

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 128/128 1/1 12/12
第二周 212/340 1/2 18/30
第三周 206/546 1/3 20/50
第四周 483/1029 2/5 40/90
第五周 633/1662 1/6 30/120
第六周 560/2222 1/7 20/140
第七周 511/2733 1/8 20/160
第八周 817/3550 3/11 25/185

参考资料

posted @ 2018-05-02 21:24  m1sty  阅读(196)  评论(1编辑  收藏  举报