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

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

教材学习内容总结

  • 继承是从现有类派生新类的过程,是面向对象编程的显著过程。
  • 子类与父类可以看作“是”的关系。
  • protected封装性没有private严格,但比public可见性更强。
  • super可以使子类使用父类的构造方法。
  • Java可以以接口的方法实现多继承。
  • 子类可以重写父类的方法。
  • 原则上应该避免使用影子变量。
  • final可以限制继承能力

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

  • 问题1:不知道super引用具体可以引用那些方面东西
  • 问题1解决方案:查询资料知道super有三种用法: 1.普通的直接引用。与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。2.子类中的成员变量或方法与父类中的成员变量或方法同名。3.引用构造函数。参考资料
  • 问题2:不太懂类层次结构的类容
  • 问题2解决方案:准备等老师课堂上讲解
  • 问题3:对于怎样实现多继承不太了解
  • 问题3解决方案:可以通过接口与内部类实现多继承。参考资料

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

  • 问题1:使用return返回值时发生错误

  • 问题1解决方案:误将“=”加在return与要返回的值之间了

  • 问题2:有时候写代码时掉一个“{”或“}”引出一大堆错误.....

  • 问题2解决方案:只能写的时候认真一点,写完后仔细检查了

代码托管

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

上周考试错题总结

  • 错题1及原因,理解情况
    Assume that BankAccount is a predefined class and that the declaration BankAccount[ ] firstEmpireBank; has already been performed. Then the following instruction reserves memory space for
    firstEmpireBank = new BankAccount[1000];
    A . a reference variable to the memory that stores all 1000 BankAccount entries
    B . 1000 reference variables, each of which point to a single BankAccount entry
    C . a single BankAccount entry
    D . 1000 BankAccount entries
    E . 1000 reference variables and 1000 BankAccount entries
    正确答案: B
    你的答案: A
    申报BankAccount [] firstEmpireBank; 为firstEmpireBank保留内存空间,它本身是一个指向BankAccount []对象的引用变量。 声明firstEmpireBank = new BankAccount [1000]; 将BankAccount []对象实例化为1000个BankAccount对象。 这意味着firstEmpireBank [0]和firstEmpireBank [1]和firstEmpireBank [999]现在都是合法的引用,每个引用变量都是引用变量,因为每个引用BankAccount对象。 所以,该语句为1000个参考变量保留了内存空间。 请注意,1000个BankAccount对象都没有实例化,因此尚未为任何实际的BankAccount对象留出内存。
  • 错题2及原因,理解情况
    Arrays have a built in toString method that returns all of the elements in the array as one String with "\n" inserted between each element.
    A . true
    B . false
    正确答案: B
    你的答案: A
    数组是对象,所以它们从Object类继承。 Object类有一个toString方法。 但是,Object的toString方法不返回存储在Object中的值,而是返回参考变量的值。 所以,在数组上使用的toString不会返回数组中存储的值,而是返回一组无意义的字符。
  • 错题3及原因,理解情况
    A Java main method uses the parameter (String[ ] variable) so that a user can run the program and supply "command-line" parameters. Since the parameter is a String array, however, the user does not have to supply any parameters.
    A . true
    B . false
    正确答案: A
    你的答案: B
    主要方法需要参数,以防程序员希望允许用户提供命令行参数。 然后,将在命令行输入的任何内容作为命令行参数接受。 如果它是由空格分隔的几个单词,那么每个单词存储为一个单独的字符串数组元素。 例如,“java foo.class hi there”会将变量[0]中的“hi”和变量[1]中的“there”存储起来以供程序使用。
  • 错题4及原因,理解情况
    An array index cannot be a float, double, boolean or String.
    A . true
    B . false
    正确答案: A
    你的答案: B
    数组索引必须是int类型,或者可以扩展为int的值(因此也允许使用char,byte和short)。
  • 错题5及原因,理解情况
    In Java, an array can only store one type of data. For instance, you cannot create an array that stores both double and String values.
    A . true
    B . false
    正确答案: A
    你的答案: B
    数组被称为同类型。 这意味着存储在数组中的值的类型对于每个元素都必须是相同的。 该类型由声明决定。 所以,int [] x仅使x为int数组。 所以,没有数组可以存储双打和字符串。
  • 错题6及原因,理解情况
    So long as one is only accessing the elements of an ArrayList, its efficiency is about the same as that of an array. It's only when one begins to insert or remove elements towards the front portion of an ArrayList that its efficiency deteriorates.
    A . true
    B . false
    正确答案: A
    你的答案: B
    ArrayLists被实现为数组,因此,只要访问ArrayList的元素,其效率与数组大致相同。 但是,当对ArrayList的前面部分进行插入或删除时,即发生大量元素复制时,必须降低其效率。

结对及互评

点评模板:

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

    • 改错非常详细。
    • 截图很多,更直观。
  • 代码中值得学习的或问题:

    • 代码遇到的问题不是很重要,不是很有参考价值的错误可以不必写。
  • 基于评分标准,我给本博客打分:11分。

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172318
    • 结对学习内容
      • 关于这周的实验进行了讨论
  • 上周博客互评情况

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 287/481 2/4 18/38
第三周 320/801 3/7 22/60
第四周 900/1600 2/9 30/90
第五周 807/2407 2/11 40/130
第六周 619/3023 2/13 40/170
第七周 621/3644 2/15 40/210

参考资料

posted @ 2018-04-22 22:01  大雪将烬  阅读(166)  评论(1编辑  收藏  举报