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

326477465-a      2022-02-09     496

关键词:

学号 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
第八周

参考资料



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

201723082017-2018-2《Java程序设计》第八周学习总结教材学习内容总结1.多态a.体现:父类引用指向了自己的子类对象;父类的引用接受自己的子类对象。(eg:父类f=new子类();)b.好处:大大提高了程序的扩展性。c.前提:类与类之间有... 查看详情

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

201723322017-2018-2《程序设计与数据结构》第八周学习总结教材学习内容总结第十章多态性1.后绑定。效率低于编译阶段的绑定效率。2.利用继承实现多态性。3.利用接口实现多态性。4.排序。选择法排序。(从左到右扫描到最小的数... 查看详情

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

学号2017-2018-2《程序设计与数据结构》第八吗,周学习总结教材学习内容总结-后绑定:1.术语“多态性”可以理解为“有许多形式”,一个“多态性引用”是可以在不同时间指向不同类型对象的引用变量。利用多态性调用的方法... 查看详情

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

201723192018.11.04-11.11《程序设计与数据结构》第8周学习总结目录教材学习内容总结教材学习中的问题和解决过程代码调试中的问题和解决过程代码托管上周考试错题总结结对及互评学习进度条参考资料教材学习内容总结第十二章... 查看详情

20172304《程序设计与数据结构》第八周学习总结(代码片段)

20172304《程序设计与数据结构》第八周学习总结教材学习内容总结本周主要学习的内容是堆。堆是二叉树的扩展什么是堆堆就是具有两个附加属性的一棵二叉树1.它是一棵完全树。2.对每一结点,他小于或等于其左孩子和右孩子(... 查看详情

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

201723162018-2019-1《程序设计与数据结构》第八周学习总结教材学习内容总结第十二章堆堆:上个星期学习了树,本星期接着学习树的一种扩展:二叉查找树(BinarySearchTree)。它最大的特点就是左孩子小于父节点,右孩子大于父节... 查看详情

#201723332018-2019-1《程序设计与数据结构》第八周学习总结(代码片段)

201723332018-2019-1《程序设计与数据结构》第八周学习总结教材学习内容总结《Java软件结构与数据结构》第十二章-优先队列与栈一、堆①堆是一颗具有两个附加属性的完全二叉树附加属性:1.堆是一颗完全树。2.对于每个结点,它... 查看详情

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

201723152018-2019-1《程序设计与数据结构》第八周学习总结教材学习内容总结堆是一棵完全二叉树,其中的每一结点都小于或等于它的两个孩子。一个堆也可以是最大堆(maxheap),其中的结点大于或等于它的左右孩子。最小堆将其... 查看详情

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

201723302018-2019-1《程序设计与数据结构》第八周学习总结教材学习内容总结一、堆堆就是具有两个附加属性的一棵二叉树对每一结点,它小于或等于其左孩子和右孩子二、向堆中添加一个元素1.将元素添加为新的叶节点,同时保持... 查看详情

201723272018-2019-1《程序设计与数据结构》第八周学习总结(代码片段)

201723272018-2019-1《程序设计与数据结构》第八周学习总结教材学习内容总结第十二章优先队列与堆堆1.最小堆(minheap):对是一个完全二叉树,其中的每个结点都小于或等于它的两个孩子。2.最大堆(maxheap):对是一个完全二叉树,... 查看详情

201723062018-2019-2《java程序设计与数据结构》第八周学习总结(代码片段)

201723062018-2019-2《Java程序设计与数据结构》第八周学习总结https://img2018.cnblogs.com/blog/1333004/201811/1333004-20181110144559856-530051268.gif教材学习内容总结堆堆是具有两个附加属性的一棵二叉树它是一个完全树对每一结点,它小于或等于其... 查看详情

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

教材学习内容总结第十章多态性后绑定:多态性引用能够随时间变化指向不同类型的对象。程序执行会产生一些请求事件,要求执行某段代码来完成一个方法调用,这种请求事件称为一个方法调用与一个方法定义的绑定。对于多... 查看详情

201723242018-2019-1《程序设计与数据结构》第八周学习总结(代码片段)

201723242018-2019-1《程序设计与数据结构》第八周学习总结教材学习内容总结堆具有两个附加属性的二叉树:是一颗完全树对每一结点,它小于或等于其左孩子和右孩子(最小堆)最大堆的结点大于或等于它的左右孩子最小堆将其最小... 查看详情

2017-2018-20172309《程序设计与数据结构》第八周学习总结(代码片段)

2017-2018-20172309《程序设计与数据结构》第八周学习总结一、教材学习内容总结相信其它很多同学都是以小顶堆来介绍这一章内容,所以我将以大顶堆来介绍这章内容。1.1堆的简单介绍:堆的定义:(大顶堆)堆实际上是一棵完全... 查看详情

20172308《程序设计与数据结构》第八周学习总结(代码片段)

教材学习内容总结第十二章优先队列与堆一、堆:具有两个附加属性的一颗二叉树它是一颗完全树对每一结点,它小于或等于其左右孩子(或大于等于其左右孩子)最小堆:对每一结点,它小于或等于其左右孩子最大堆:对每一... 查看详情

20165222—第八周学习

2017-2018-2《Java程序设计》第八周学习总结------------------------------------------------------------------------------------------------------十二章教材内容总结1:操作系统与进程之间的关系程序是一段静态的代码,进程是操作系统从产生代码至执... 查看详情

20165317第八周学习总结

教材内容程序:一段静态的代码进程:程序的一次动态执行过程,即从代码加载、执行至执行完毕的一个完整过程。线程:比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程。线程间可以共享进程中的某些内... 查看详情

201723282018-2019《java软件结构与数据结构》第八周学习总结(代码片段)

201723282018-2019《Java软件结构与数据结构》第八周学习总结概述Generalization本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(?°?°?)??就是堆。本章将讲解堆的链表实现and数组实现,以及往堆中添加元素或从堆中删除... 查看详情