20182328 2019-2020-1 《数据结构与面向对象程序设计》第六周学习总结

20182328 2019-2020-1 《数据结构与面向对象程序设计》第六周学习总结

教材学习内容总结

  • 第九章
    多态:1、多态后邦定
    2、如何通过继承实现多态
    3、接口的相关延伸:
    (1)接口层次
    (2)Comparable接口
    (3)lterator接口
    4、如何使用通过接口来实现多态
  • 第十章
    异常:1、异常处理
    2、不捕获异常
    3、try-catch语句
    4、异常传播异常类的层次
    5、I/O异常

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

  • 问题1:Staff类中的staffList数组仅仅保存是保存StaffMember引用吗?
  • 问题1解决方案:staffList实际上保存的是其他类创建的对象,总之staffList数组保存的是多态引用。
  • 问题2:类层次和接口层次到底有什么联系?
  • 问题2解决方案:类层次和接口层次并不重叠类不能派生接口,接口也不能派生类,只有编出一个具体接口的类时,类和接口才有交互。

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

  • 问题1:提示说在Firm文件中未声明公共Firm类

  • 问题1解决方案:使类Firm转化为不公开

  • 问题2:提示需要interface

  • 问题2解决方案:interface是面向对象编程语言中接口操作的关键字,所以解决方法是先创建一个接口

  • 问题3:类PassWordTest在java文件未声明

  • 问题3解决方案:文件名和类名起冲突,大小写不匹配

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题1
  • What are the main programming mechanisms that constitute object-oriented programming?
    A .encapsulation, inheritance, polymorphism
    B .encapsulation, abstraction, inheritance
    C .inheritance, polymorphism, recursion
    D .polymorphism, recursion, abstraction
    E .none of the above

正确答案:A

解析:封装是代码部分的隔离,这样它们就不会被意外地修改;继承提供了代码重用;多态提供了一个名称和许多语义。抽象是一个有用的属性,但它不是一种机制。递归是一种控制结构,提供了不同的方式来表示循环或重复。

  • 错题2
  • Which statement is completely true?
    A .Java upcasts automatically, but you must explicitly downcast
    B .Java downcasts automatically, but you must explicitly upcast
    C .Java expects the user to explicitly upcast and downcast
    D .Java will both upcast and downcast automatically
    E .The rules for upcasting and downcasting depend upon whether classes are declared public, protected, or private

正确答案:A

解析:upcasting是完全安全的,它是java支持的单一继承结构的产物。相比之下,向下转换必须由程序员显式地完成。Java只在一个方向上自动进行强制转换。上下投射的规则不依赖于使用中的可见性修改器。

  • 错题3
  • Which of the following statements is completely true?
    A .If a class is declared to be abstract then every method in the class is abstract and must be overridden
    B .If a class is declared to be abstract then some methods in the class may have their bodies omitted
    C .If a class is declared to be abstract then all methods in the class must have their bodies omitted
    D .If a class is declared to be abstract then all the instance variables must be overridden when a concrete class is derived from the abstract base class

正确答案: B

解析:创建抽象类的唯一方法是在类中创建一些抽象方法。所以,答案B是真的。当然,抽象类中的所有方法都不必是抽象的。

  • 错题4

  • It is possible to sort an array of int, float, double or String, but not an array of an Object class such as a CD class.
    A .true
    B .false
    正确答案: B
    解析:只要类型有某种机制来比较两个元素并确定它们的正确顺序(小于、等于、大于),就可以对任何类型的数组进行排序。所以,如果cd类有compareTo方法,那么就可以对它们进行排序。

  • 错题5

  • Java allows one to create polymorphic references using inheritance and using interfaces.
    A .true
    B .false

正确答案: A
解析:继承允许使用一个基变量来引用不同的子代成员在执行期间将使用正确的子代成员。这就是多态性的作用。接口提供了类似的机制,但使用的是抽象方法,而不是继承中使用的具体方法。但效果是一样的。

  • 错题6
  • An interface name can be used to declare an object reference variable.
    A .true
    B .false

正确答案: A
解析:这是使用接口名声明引用变量的多态函数之一。

结对及互评

评分标准

  • 基于评分标准,我给本博客打分:15分。得分情况如下:
  1. 正确使用Markdown语法(加1分):
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程, 一个问题加4分
  4. 代码调试中的问题和解决过程, 一个问题加4分
  5. 其他加分:5
  6. 扣分:0

点评模板:

  • 博客中值得学习的或问题:

    • 内容详实且精简
    • 问题充分且已解决
    • 有配图
  • 代码中值得学习的或问题:

    • 正确且简练
    • 方法多样很值得学习
  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182322
    • 结对学习内容
      • 多态概念的理解
      • 接口的实现

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

1、第九章和第十章自学起来还是很难的,尝试敲了一遍示例代码但还没有思路,说明我还是要锻炼一下思维能力
2、代码量还不够,平时还是要多下劲敲代码。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:26小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2019-10-15 20:02  20182328张景昊  阅读(172)  评论(1编辑  收藏  举报