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

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

教材学习内容总结

第十章多态性

  • 1.后绑定。
    • 效率低于编译阶段的绑定效率。
  • 2.利用继承实现多态性。
  • 3.利用接口实现多态性。
  • 4.排序。
    • 选择法排序。(从左到右扫描到最小的数)
    • 插入法排序。(依次选取数与之前排列好的数列进行比较然后插入)
    • 综合考虑,选择法优于插入法。
  • 5.搜索。
    • 线性搜索。
    • 二分搜索。(必须是按顺序排列好的)
    • 二分搜索的效率高于线性搜索,但是线性搜索的实现比二分搜索简单。
  • 6.多态性设计(多个不同对象执行相同的基本行为,并且行为的不同实现方式取决于对象的具体类型。)

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

  • 问题1:二分搜索时若数组元素个数为双数怎么取中间值?
  • 问题1解决方案:选中间两值相加除以2,然后取整为中间值,进行比较。
  • 问题2:这种实例化语句,如Speaker current = new Philosopher();,怎么理解?
  • 问题2解决方案:这就与多态性有关,可以理解为定义一个实现Speaker接口的类Philosopher,就可以将Philosopher对象(就是current)赋给Speaker接口引用变量。

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

  • 问题1:出现红线的原因

    1333382-20180501170604913-950500267.png

  • 问题1解决方案:只能在类中实现接口,不能在有main函数的中实现。

代码托管

1333382-20180501191729087-1418551803.png

上周考试错题总结

1.Abstract methods are used when defining
  • A . interface classes
  • B . derived classes
  • C . classes that have no constructor
  • D . arrays
  • E . classes that have no methods
  • 答案:A ;我选的:E
  • 分析:接口中全是抽象方法。
  • 单词:1.derived:继承。
2.A variable declared to be of one class can later reference an extended class of that class. This variable is known as
  • A . protected
  • B . derivable
  • C . cloneable
  • D . polymorphic
  • E . none of the above, a variable declared to be of one class can never reference any other type of class, even an extended class
  • 答案:D ;我选的:A
  • 分析:此题与多态性有关,当时还没学,现在学完了多态,很容易理解。(简单理解就是,A类型的变量可以用B类型的方法。)
  • 单词:1.polymorphic:多态。
3.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
  • 答案:D ;我选的:A
  • 分析:多态变量可以采取许多不同的类型,但不知道它在执行程序之前采取了什么类型。在引用变量时,必须做出决定。这个决定是由运行时环境基于变量的最新赋值来实现的。
  • 单词:1.compiler:编译程序。

点评过的同学博客和代码

其他(感悟、思考等,可选)

  • 本周内容中的排序和搜索,在学数组时的视频中有提及,所以不是很难理解。至于有关多态方面的知识,可能会用, 但是还不是很能理解。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周182/1821/110/10
第二周458/6401/215/25
第三周469/11092/418/43学会IDEA的使用和调试,学会jdb调试。
第四周1536/26451/524/67
第五周980/36251/625/92
第六周870/44951/716/108
第七周455/49502/922/130
第八周1322/62722/1128/158
  • 计划学习时间:20小时

  • 实际学习时间:28小时

  • 改进情况:本周开始有四则运算的项目,所以在java学习中花费的时间更多,因此博客也多一篇。

参考资料

转载于:https://www.cnblogs.com/yu757503836/p/8915516.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值