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

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

教材学习内容总结

  1. 保护可见性提供了继承之间最恰当的封装机制
  2. 可以使用super引用来调用父类的构造方法
  3. 子类可以重写(重定义)继承自父类的方法

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

  • 问题1:父类与子类的关系

  • 问题1解决方案:先有父类,再有子类,先析构子类,再析构父类
    第一,子类对象在创建时会首先调用父类的构造函数
    第二,父类构造函数执行结束后,执行子类的构造函数
    第三,当父类的构造函数有参数时,需要在子类的初始化列表中显示调用
    第四,析构函数调用的先后顺序与构造函数相反

  • 问题2:每个继承的类代表的什么关系

  • 问题2解决方案:每个继承的类该代表一种is-a关系

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

  • 问题1:如何建立tostring函数
  • 问题1解决方案:按alt+insert键,选择tostring

-问题2:如何多选几个函数?
-问题2解决方案:按住Ctrl,鼠标右键选择

[代码托管]

上周考试错题总结

  • 错题1.The instruction super( ); does which of the following?
    A .calls the method super as defined in the current class
    B .calls the method super as defined in the current class'parent class
    C .calls the method super as defined in java.lang
    D .calls the constructor as defined in the current class
    E .calls the constructor as defined in the current class'parent class
  • 解析:instruction super表示对当前类的父类中某些内容的调用。因为除了super()之外没有消息,所以它是对父类构造函数的调用。
  • 错题2.If a programmer writes a class wanting it to be extended by another programmer, then this programmer must
    A .change private methods and instance data to be protected
    B .change public methods and instance data to be protected
    C .change all methods to be protected
    D .change the class to be protected
    E .none of the above, the programmer does not have to change anything
  • 解析:受保护项可由定义它们的类的任何子类访问,而私有项不能由任何其他类访问。因此,以前定义的私有项现在必须受到保护。先前定义的公共实体应保持公共,以便所有其他类仍然可以访问这些公共实体。不应公开以前定义的私有项,因为这将允许所有类访问它们,而不仅仅是子类。
  • 错题3.All classes in Java are directly or indirectly subclasses of the ________ class.
    A .Wrapper
    B .String
    C .Reference
    D .this
    E .Object
  • 解析:Java要求所有类都有父类。如果一个类不扩展另一个类,则默认情况下,它扩展对象类。因此对象类是Java中所有其他类的父类或父类。
  • 错题4:Which of the following is true regarding Java classes?
    A .All classes must have 1 parent but may have any number of children (derived or extended) classes
    B .All classes must have 1 child (derived or extended) class but may have any number of parent classes
    C .All classes must have 1 parent class and may have a single child (derived or extended) class
    D .All classes can have any number (0 or more) of parent classes and any number of children (derived or extended) classes
    E .All classes can have either 0 or 1 parent class and any number of children (derived or extended) classes
  • 解析:Java支持继承,但不支持多重继承,因此Java类可以有任意数量的子节点,但只有一个父级。此外,由于所有Java类都直接或间接从对象类继承,因此所有Java类只有一个父类。
  • 错题5: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访问父类的构造函数。所以正确答案是a和b的组合,这不是一个选项,所以正确答案是e。
  • 错题6:If you instantiate an Abstract class, the class or object you wind up with
    A .is also an Abstract class
    B .is a normal class
    C .is an Interface
    D .is a reference to an Object
    E .can't exist you cannot instantiate an Abstract class
  • 解析:你只能实例化具体的类而不是抽象的类。但是您可以扩展抽象类和接口。
  • 错题7:The protected visibility modifier provides the best possible encapsulation that permits inheritance.
    A .true
    B .false
  • 解析:protected尽可能地限制可见性,同时仍然允许继承。在某些方面,受保护的“广告”应使用继承权。

点评:

  • 博客中值得学习的或问题:
    • 对课本,代码进行多方位的思考。
    • 认真寻找自己的不足之处。
    • 举例说明问题。
  • 代码中值得学习的或问题:
  • 基于评分标准,我给本博客打分:14分。得分情况如下:
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 结对学习情况真实可信的加1分
    • 正确使用Markdown语法
    • 模板中的要素齐全(加1分)
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 教材学习中的问题和解决过程, 加5分
    • 代码调试中的问题和解决过程,加2分

点评过的同学博客和代码

  • 本周结对学习情况
    • 赵沛凝20182301

    • 结对照片

    • 结对学习内容

      • 函数调用(IDEA快捷键)
      • 计算器改编
  • 上周博客互评情况

其他(感悟)

对IDEA的了解更加深刻,学习了继承及有关内容

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 26/200 2/2 7/7
第二、三周 235/327 3/5 15/23
第四周 123/450 2/7 8/31
第五周 850/1300 2/9 9/40
  • 实际学习时间:9小时

参考资料

posted on 2019-10-07 22:16  20182326  阅读(218)  评论(3编辑  收藏  举报