学号 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
修饰抽象方法,而private
和protected
不可以。如果一个类中有抽象方法,那么这个类一定是抽象类。
代码调试中的问题和解决过程
- 问题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的优点之一。通过实现多个接口,可以实现多继承的大部分优点。
结对及互评
评分标准
-
正确使用Markdown语法(加1分)
-
模板中的要素齐全(加1分)
-
教材学习中的问题和解决过程, 3个问题加3分
-
代码调试中的问题和解决过程, 2个问题加2分
-
本周有效代码超过300分行的(加2分)
-
感想,体会不假大空的加1分
-
排版精美的加一分
-
进度条中记录学习时间与改进情况的加1分
-
有动手写新代码的加1分
-
课后选择题有验证的加1分
-
错题学习深入的加1分
-
点评认真,能指出博客和代码中的问题的加1分
-
结对学习情况真实可信的加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小时