学号 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 | |
第八周 | 771/4589 | 2/10 | 15/160 |
参考资料
- 《Java程序设计与数据结构教程(第二版)》
- 《Java程序设计与数据结构教程(第二版)》学习指导
- java中的绑定、前期绑定、后期绑定三者的概念