zoukankan      html  css  js  c++  java
  • 20182331 2019-2020-5《数据结构与面向对象程序设计》第5周学习总结

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

    教材学习内容总结

    • 子类对父类的继承extends
    • 继承的目的之一是复用已有的软件
    • 子类可以重写父类的方法
    • 继承无法使用构造方法,但super可以。即在子类的构造方法中第一行使用super调用父类构造方法
    • 所有类都是从Object类继承来的
    • Object类直接或间接派生所有类。其定义在java.lang中
    • 抽象类abstract
    • 用protect修饰父类的变量和方法
    • final可以用来限制继承

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

    • 问题1:接口类和抽象类
    • 问题1解决方案:1.接口类:常量+抽象方法。2.抽象类:常量/变量+抽象/非抽象方法。3.抽象类是用来捕捉子类的通用性的,它不能被实例化,只能用作子类的超类,抽象类是被用来创建继承层级里子类的模板。4.抽象类中的每一个抽象方法都必须使用abstract修饰符,抽象方法不使用final和static修饰符。
    • 问题2: 什么是权限修饰符,它有什么作用,为什么需要它
    • 问题2解决方案:一个Java应用有很多类,但是有些类,并不希望被其他类使用。每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用。如何能做到访问控制呢?就需要使用访问权限修饰符

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

    • 问题1:在做继承这一章的课后题的时候,关于抽象方法一直搞不明白
    • 问题1解决方案:父类中有抽象方法的话,子类必须实现这个抽象方法,不然的话也是一个抽象类。如果父类中有构造方法。那么子类中必须也有构造方法。
    • 问题2:在进行people继承的编程中一直不能运行
    • 问题2解决方案:多打了一个花括号,结果导致找不到主类

    代码托管

    上周考试错题总结

    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.Inheritance through an extended (derived) class supports which of the following concepts?

    A . interfaces
    B . modulary
    C . information hiding
    D . code reuse
    E . correctness

    思考:通过扩展类并从中继承,新类不必重新实现任何继承的方法或实例数据,从而节省程序员的工作量。因此,代码重用是指通过扩展别人的代码以满足您的需要,从而为您的利益重用别人的代码的能力。

    3.Which of the following is an example of multiple inheritance?

    A . A computer can be a mainframe or a PC
    B . A PC can be a desktop or a laptop
    C . A laptop is both a PC and a portable device
    D . A portable device is a lightweight device
    E . Macintosh and IBM PC are both types of PCs

    思考:多重继承意味着给定的类继承自多个父类。在上面列出的这些中,笔记本电脑继承了个人电脑和便携式设备的特性。A、B和E中的答案都是单个继承的例子,其中一个类至少有两个子类(在A中,计算机有子大型机和PC,在B中,PC有子台式机和笔记本电脑,在E中,PC有子Macintosh和IBM PC)。答案d表示类的属性。

    4.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

    思考:受保护项可由定义它们的类的任何子类访问,而私有项不能由任何其他类访问。因此,以前定义的私有项现在必须受到保护。以前定义的公共实体应该保持公共,以便所有其他类仍然可以访问这些公共实体。以前定义的私有项不应该公开,因为这将允许所有类访问它们,而不仅仅是子类。

    5.The relationship between a parent class and a child class is referred to as a(n) ________ relationship.

    A . has-a
    B . is-a
    C . was-a
    D . instance-of
    E . alias

    思考:术语“is-a”用于表示子类是父类的一种类型。例如,研究生就是一种类型的学生。子类是更具体的类型。has-a关系指的是类的属性或元素(例如,学生有gpa),instance of指的是类与该类的实例化对象之间的关系。没有一个WAS-A关系,一个别名表示引用同一个对象或实例的两个变量。

    6.Why shouldn't an abstract method be declared final?

    A . There's nothing wrong with doing so
    B . Abstract methods cannot be overridden and they must be if a concrete class ever is to be instantiated
    C . So long as the Abstract method never actually is used in by any other method, there's no problem with doing this
    D . So long as the Abstract method is declared in a Class (not an Interface), there's nothing wrong with doing this
    E . None of the above

    思考:为了使抽象方法成为具体的,必须重写它。将方法声明为final使其无法重写。这是一个矛盾,是被禁止的。

    总结:其实我列举出来的问题只是本周学习中的一些具有代表性,思考型的错误,一些关于基础知识点的错误我根本就没有罗列,知识点的错漏还是太大了。

    结对及互评

    • 博客中值得学习的或问题:
      • 学习深刻,自己有方法
      • 代码中值得学习的或问题:
      • 使用继承减少代码的重复编写
      • 基于评分标准,我给本博客打分:100分。得分情况如下:
      • 正确使用Markdown语法(加1分)
      • 模板中的要素齐全(加1分)
      • 教材学习中的问题和解决过程, 一个问题加1分
      • 代码调试中的问题和解决过程, 一个问题加1分
      • 排版精美的加一分
      • 代码超过300行(加2分}
      • 代码Commit Message规范的加1分
      • 有动手写新代码的加1分
      • 结对学习情况真实可信的加1分

    点评过的同学博客和代码

    • 本周结对学习情况
    • 20182309
      • 结对学习内容
        • 建立局域网下服务器与客户端的连接
        • 学习继承关系
        • 解决代码错误

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第五周 1588/2698 2/9 34/133

    参考资料

  • 相关阅读:
    黄聪:WordPress wp_head()优化:去除不必要的元素标签(转)
    黄聪:IE6下用控制图片最大显示尺寸
    黄聪:wordpress wp_head()函数 浏览器顶部 空白28px 解决办法(转)
    黄聪:在Photoshop中创建多种样式的网格背景图案(转)
    黄聪:如何WP中获取文章分类名称、分类ID、归档分类链接
    黄聪:Wordpress如何不显示(只显示)置顶文章
    黄聪:淘宝用户在宝贝详情页想看到什么
    黄聪:Windows7立体声混音设置方法(stereo mix)(转)
    黄聪:wordpress博客用Slimbox2实现lightbox效果(免插件)(转)
    黄聪:tor 解决 连接中继目录failed 没有可用的链路
  • 原文地址:https://www.cnblogs.com/gao-kuanrang/p/11631653.html
Copyright © 2011-2022 走看看