zoukankan      html  css  js  c++  java
  • 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

    参考资料

  • 相关阅读:
    ubuntu配置jdk和tomcat+部署java项目[最佳实践]
    jQuery TreeGrid
    关于json的一些误解
    jQuery2.0.3源码分析-1(持续更新中......)
    webstrom一些常用快捷键
    js插件-Map插件
    webstorm-删除项目
    随笔-20131209
    软件开发模式对比(瀑布、迭代、螺旋、敏捷)
    javascript学习(10)——[知识储备]链式调用
  • 原文地址:https://www.cnblogs.com/m1sty/p/8979670.html
Copyright © 2011-2022 走看看