《程序设计与数据结构》第八周学习总结

学号 20172326 《程序设计与数据结构》第八周学习总结

教材学习内容总结

  • 后绑定在程序执行时执行
  • 多态性可由继承与接口实现
  • 排序有选择法排序与插入法排序
  • 搜索分为线性搜索与二分搜索
  • 算法,同一类型的不同方法可能解决同一问题,但是,效率与难以程度不同

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

  • 问题:Java当中的绑定机制
  • 首先,编译时绑定与动态绑定又分别称为前期绑定和后期绑定。前期绑定:在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。后期绑定:在运行时根据具体对象的类型进行绑定。重载函数的实际调用版本由编译器绑定决定,而覆盖函数的实际调用版本由动态绑定决定。
  • 重写与重载
  • 重写(override):当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。
  • 重载(overload):对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候就构成方法重载
  • 区别:重载为函数名相同,参数列表不同,与其他的无关(访问控制符、返回值类型)。重写为函数名必须相同、参数列表必须相同。
    子类的返回值类型要等于或者小于父类的返回值。

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

  • 问题:PP10.5的编写
  • 问题解决方案:要对Movies进行修改,使得其能够按照电影名的字母顺序进行排序。开始,我仿照书上的例题,对其进行编写,但是,将Comparable接口与哪个程序进行“对接”?下面进行分析,CompareTo中要将电影名,导演名进行比较,而在DVDCollection中只有数组的方法,在DVD中含有这两个变量,所以再加上getter方法就行了。获取这两个变量后,就可以将进行比较。接着就是排序的问题,这里就可以使用Sorting的方法,通过选择排序法进行比较。

    代码托管

上周考试错题总结

  • 错题1
  • Insertion Sort和Selection Sort的算法效率是相同的,均为n的二次方。
  • 错题2
  • 二者算法效率相同,且均为两个嵌套循环,所以,不需要额外的循环
  • 错题3
  • 抽象方法中可以有非抽象方法,且抽象方法只有声明,没有主体
  • 错题4
  • 方法的重载也是多态性的一种体现
  • 错题5
  • 算法的效率为n^2,而由于有n个数据元素,所以在数据量小于一个元素之前可以将数据减半的次数是log2n。
  • 错题6
  • 一个引用变量可以指向有继承关系的任何类的任何对象
  • 错题7
  • 将不同的字符串输出,正是体现了多态的特点
  • 错题8
  • 类引用可以直接调用其他类的方法

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 110/110 1/1 20/20
第二周 315/425 1/2 18/38
第三周 475/900 2/4 22/60
第四周 600/1500 1/5 30/90
第五周 1215/2715 1/6 20/110
第六周 382/3097 1/7 20/130
第七周 721/3818 1/8 15/145
第八周

参考资料

猜你喜欢

转载自www.cnblogs.com/326477465-a/p/8983065.html