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

教材学习内容总结

  • 了解String类
    常量对象:常量池中的数据在程序运行期间再也不允许改变。
    String对象:用户无法输出String对象的引用。
  • object类:所有Java类都直接或间接地由object类派生。(Java的每一个类都继承toString和equals方法)
    继承主要表达的是“是”这个关系。子类是父类的一个更具体的类。
  • super用来调用父类的构造方法。
  • 对于层次结构,我觉得就是将共用性强的类提高在较高的层次,这样引用的时候,更加的方便。同时,应知道Object类是没有父类的。
  • 字符串与基本数据的相互转化
    (字符串转基本数据类型)例子:
    Integer类调用类方法public static int parseInt(String s)实现将数字字符转化为数字。
    (基本数据类型转字符串)例子:
    String类调用类方法public static String valueOf(byte n)将数值转化为String对象,或者调用toString()方法获得该对象的字符串表示。
  • 字符串与字符数组的相互转换
    (字符串转字符字符数组)例子:
    public char[] toCharArray()将一个字符串全部转化为字符数组,或者使用getChars
    (字符数组转字符串):直接用简单的初始化字符串的方式即可。

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

  • 问题1:子类是否可以重写父类的所有方法。
  • 问题1解决方案:构造方法时一个特殊的方法,与类名相同,但是没有返回类型。如果试图重写父类的构造方法,将会产生语法错误,因为除了构造方法之外的所有方法都必须有返回类型。
  • 问题2:为什么抽象类不包含抽象代码
  • 问题2解决方案:抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。对于抽象方法,一定要用public abstract修饰抽象方法,而privateprotected不可以。如果一个类中有抽象方法,那么这个类一定是抽象类。

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

  • 问题1:运行循环输入时报错
  • 问题1解决方案:输入时按照规定的输入数据类型依次输入

代码托管

上周考试错题总结

  • 错题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
    正确答案: E 你的答案: B
    解析:指令超级表示对当前类的父类中某些内容的调用。因为没有消息,而只有Super(),所以它是对父类构造函数的调用。
  • 错题2
    Two children of the same parent class are known as
    A .aliases
    B .relatives
    C .clones
    D .brothers
    E .siblings
    正确答案: E 你的答案: D
    解析:父母相同的两个子女之间的关系被称为兄弟姐妹(兄弟关系意味着一种性别)。克隆是同一个对象的副本,别名是同一个对象。在Java中,兄弟和亲属不用于定义类之间的关系。
  • 错题3
    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
    正确答案: B 你的答案: A
    解析:术语“is-a”用于表示子类是父类的类型。例如,毕业生是学生的一种类型。子类是一个更特定的类型。haf-关系指的是类的属性或元素(例如,学生有GPA)和实例-指类和该类实例化对象之间的关系。没有WAS-a关系和别名表示引用同一个对象或实例的两个变量。
  • 错题4
    Which of these is correct?
    A .a base class is a parent class or super class
    B .a base class is a child class or derived class
    C .a child class is a super class of its parent
    D .a parent class is a subclass of its child
    E .none of the above
    正确答案: A 你的答案: C
    解析:术语、基类、父类、超类是相互之间的同义词.它们都意味着类将被用作继承的基础,随后的类将扩展(继承)基类。
  • 错题5
    Java doesn't support multiple inheritance; but it does support the implementation of multiple Interfaces.
    A .true
    B .false
    正确答案: A 你的答案: B
    解析:单继承是Java的优点之一。通过实现多个接口,可以实现多继承的大部分优点。

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分)

  2. 模板中的要素齐全(加1分)

  3. 教材学习中的问题和解决过程, 3个问题加3分

  4. 代码调试中的问题和解决过程, 2个问题加2分

  5. 本周有效代码超过300分行的(加2分)

  6. 感想,体会不假大空的加1分

  7. 排版精美的加一分

  8. 进度条中记录学习时间与改进情况的加1分

  9. 有动手写新代码的加1分

  10. 课后选择题有验证的加1分

  11. 错题学习深入的加1分

  12. 点评认真,能指出博客和代码中的问题的加1分

  13. 结对学习情况真实可信的加1分

点评模板:

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

  • 代码中值得学习的或问题:
    代码增长量多,说明结对的同学这周很努力的在学习Java,我也要努力学习Java了

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

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182313
    • 结对学习内容
      • 学习继承的相关概念
      • 学习编写客户端和服务器
      • 学习编写分数运算的有理数计算器

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

学习进度条

| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|
| -------- | :----------------😐:----------------😐:---------------: |:-----😐
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 168/168 | 2/2 | 22/22 | |
| 第二周 | 300/500 | 1/3 | 16/38 | |
| 第三周 |500/1000 | 2/5 | 22/60 |
| 第四周 |605/1460 |2/7|35/95
|第五周|1526/2986|2/9|20/115
参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:20小时

参考资料