20172320 2017-2018-2 《Java程序设计》第八周学习总结

Posted garolwz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172320 2017-2018-2 《Java程序设计》第八周学习总结相关的知识,希望对你有一定的参考价值。

20172320 2017-2018-2 《Java程序设计》第八周学习总结

教材学习内容总结

1、绑定多数情况下发生在编译阶段
2、被延迟的请求事件成为后绑定或动态绑定,后绑定的效率低于编译阶段的绑定效率
3、多态性引用:继承方式和接口方式
4、一个引用变量可以指向有继承关系的任何类的任何对象
5、实际将调用的方法版本取决于对象的类型而不是引用变量的类型
6、一个接口引用变量可以指向实现该接口的任何类的任何对象
7、选择法排序通过相继的将各值放在自己的最终位置,插入排序法是不断地将一个新元素插入到已排好的数列子集中,直到整个数列有序排列为止
技术分享图片
技术分享图片

8、两种排序都是n^2阶算法,但选择排序所执行的交换操作的次数更少,因此选择法优于插入法
9、线性搜索从一个端点开始,以线性方式扫描整个搜索池;二分搜索从有序数列的中点开始搜索
技术分享图片
技术分享图片

10、若长远的看搜索的效率不是重要问题时,线性搜索则可能是最佳选择

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

  • 问题1:两种排序法的比较
  • 问题1解决方案:书上说选择排序的交换操作的次数少,所以优于插入法。但既然存在这种排列法,那么就一定有它的优势,在网上搜索了一下,对比了几种排列法,发现了它相对其他几个方法同时具有稳定,快的优势,但不适合总量庞大的数据
    技术分享图片
    同时还搜出了这两个排序法效率的比较公式
    技术分享图片
    可以看出序列越有序则插入排序所需比较次数越少;而选择排序比较次数恒为N*(N-1)/2次,从而更进一步说明插入排列法不适合处理庞大杂乱的数据

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

  • 问题1:PP10.5无法排序
  • 问题1解决方案:刚开始直接把第八章的DVD和movie复制过来在movie里进行修改,结果无法排序,后来根本没用compareTo方法,就在DVD中仿照Contact后面的compareTo进行定义,然后还有如图这个问题
    技术分享图片
    技术分享图片
    仔细对照发现,DVD中没使用Comparable接口

代码托管

技术分享图片

技术分享图片

上周考试错题总结

  • All classes in Java are directly or indirectly subclasses of the ________ class.
    A .Wrapper
    B .String
    C .Reference
    D .this
    E .Object
    分析:Java要求所有类都有父类。如果一个类不扩展另一个类,那么它在默认情况下扩展了对象类。对象类是Java中其他类的父类。

  • In order to determine the type that a polymorphic variable refers to, the decision is made
    A .by the programmer at the time the program is written
    B .by the compiler at compile time
    C .by the operating system when the program is loaded into memory
    D .by the Java run-time environment at run time
    E .by the user at run time
    分析:多态变量可以包含许多不同的类型,但是在程序执行之前,它不知道是哪一种类型。在引用变量时,必须做出决策。这个决策是由运行时环境根据变量的最新分配而做出的。

  • Using the reserved word, super, one can
    A .access a parent class‘constructor(s)
    B .access a parent class‘methods and instance data
    C .access a child class‘constructor(s)
    D .access a child class‘methods and instance data
    E .none of the above
    分析:超级保留字提供了一种机制,用于访问父类的方法和实例数据(不管它们是否隐藏)。此外,可以使用super来访问父类的构造函数。

    结对及互评

点评过的同学博客和代码

  • 本周结对学习情况
    20172327
    20172317
  • 结对学习内容
    ?教材第10章
    ?阅读10.1-10.6章节
    ?完成课后自测题,并参考答案学习
    ?完成课后练习题
    ?完成程序设计项目:至少完成PP10.1、PP10.4、PP10.5.

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 67/67 1/4 20/20
第二周 328/395 1/5 20/40
第三周 523/851 1/6 20/60
第四周 1070/1921 1/7 20/80
第五周 608/2529 1/8 10/90
第六周 608/2899 1/9 20/110
第七周 429/3328 1/10 20/130
第八周 804/4131 1/11 20/150

参考资料












































以上是关于20172320 2017-2018-2 《Java程序设计》第八周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20172320 2017-2018-2 《程序设计与数据结构》实验二报告

20172320 2017-2018-2 《Java程序设计》第八周学习总结

20172320 2017-2018-2 《Java程序设计》第十周学习总结

2017-2018-2 1723 『Java程序设计』课程 结对编程练习_四则运算

20165218 2017-2018-2 《Java程序设计》第一周学习总结

20172320 结对编程项目-四则运算 第二周 阶段总结