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

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

教材学习内容总结

第八章讲到了类的三要素之一的继承,结合云班课的教学视频,对知识点有了较为清晰的理解。总结而言,在继承这一环节,分清子类和父类的关系,以及子类和父类之间的继承关系是一个重点也是难点,其中比较有代表性的一条方法就是使用super引用,这一点在程序8.6中有体现出来,super(numPages)命令即是对程序8.5中所定义的numPages进行引用,同时在程序开始时的命令public class Dictionary2 extends Book2也是明确了这一点,Dictionary2是从已有类中派生出的新类,这也是本章继承所要表达的含义。

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

  • 问题1:
    关于子类重写,包括重定义来自父类的方法,如果将方法重新定义了,那仍然属于继承吗,如程序8.7中的Advice类的重新定义,运用新的方法即得到完全不同的输出结果,那么是否可以理解为子类在父类的基础上,进行了更进一步地深入?这与继承这一节其他内容是否有一定的联系?同时重载和重写是否有一定的区别?

  • 问题1解决方案:
    通过学习教材的有关内容以及在网上查阅相关资料,了解了方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。同时重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。而重写则是需要利用父类和子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖,是继承这一章节中重要的一个知识点。

  • ...

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

  • 问题1:PP8.1中,需要实例化驱动类,并让新类继承父类中的flip方法,关于驱动类的建立,教材中并没有详细的说明。

  • 问题1解决方案:
    在网上查阅了资料,驱动是指加入了jar包后,原本系统中没有的功能可以发挥作用,相当于插件。插入了新的类,在使用new之后就可以正常使用。

代码托管

(statistics.sh脚本的运行结果截图)
代码提交:

结对及互评

通过学习20162313苑洪铭同学的博客,苑洪铭同学在对类层次的概念理解上比较下功夫,同时也有很好的掌握,在类层次方面,如果涉及多个类之间的从属关系,快速辨别各个类的层次关系,再对父类的修改,可以有效避免编译过程中出现错误和漏洞,同时也能更好的对继承关系进行系统的掌握。

  • 基于评分标准,我给本博客打分:8分。

点评过的同学博客和代码

http://www.cnblogs.com/yuanhongming/

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

在本周的学习中,java的继承是一个概念较多、内容较杂、体系较明确的知识点,在编译过程中同样有较为严格的语法和固有的编译结构。在编译的过程中,理解清楚类的层次关系以及从属关系,对于学好本节有着很大的帮助。

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第五周 200/200 1/1 20/20
第六周 766/1000 1/1 18/38
第七周 500/1000 1/1 22/60
第八周 300/1300 1/1 30/90
  • 计划学习时间:25小时

  • 实际学习时间:27小时

posted @ 2017-04-09 15:31  邢天岳  阅读(210)  评论(4编辑  收藏  举报