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

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

教材学习内容总结

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

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

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

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

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

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

代码托管

1333059-20180502212230823-86993340.png

上周考试错题总结

  • 错题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/1281/112/12
第二周212/3401/218/30
第三周206/5461/320/50
第四周483/10292/540/90
第五周633/16621/630/120
第六周560/22221/720/140
第七周511/27331/820/160
第八周817/35503/1125/185

参考资料

转载于:https://www.cnblogs.com/m1sty/p/8979670.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值