第四周学习总结
学号 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结
教材学习内容总结
-
迭代器与for循环,迭代器本身为一个方法,可近似看作一个循环,内包含方法hasNext,可作为判断循环是否继续进行的标志。
-
类,方法,对象。类内包括许多方法,如果是静态方法,则不需要通过将类实例化再引用,如果方法不是静态方法,则要先将类实例化出相应的对象,再引用方法。
-
静态类(static定义),静态方法可由类名直接调用。静态方法不会对具体的对象进行操作,所以静态方法不能引用在类的实例中才存在的实例变量,若静态方法试图引用一个非静态变量,系统就会报错;静态变量在程序内只有一个值,由所有的方法共享,在方法内改变一个值即改变所有方法内该变量的值。
-
类关系——依赖,即类与类直接的引用关系,一个类的一个或多个方法引用其他类一个或多个方法。在编写程序时,应尽量减少依赖关系,减少错误发生。
-
this的引用:this可指向当前运行对象本身,即引用当前被调用对象本身的方法,另外this常用在构造方法中,区别形参与实参。
教材学习中的问题和解决过程
-
问题1:编写类时,构造方法有什么作用?
-
问题1解决方案:构造方法常用于初始化每个对象对应的变量,起到帮助建立类的作用。区别一般方法:构造方法与类名相同;构造方法不能有返回值,即方法头部没有返回值类型。
-
问题2:加private前缀的方法有什么用?
-
问题2解决方案:该方法可以帮助其他方法更改变量的值,可不被用户调用,安全稳定性更高。
-
问题3:什么时方法重载?可以有效解决哪些问题?
-
问题3解决办法:Java可让多个方法使用相同的方法名,但含有不同的参数列表。该技术称为方法重载。可以有效解决需要不同类型,不同数目参数解决类似问题。
代码调试中的问题和解决过程
-
问题1:编程中,直接在println中输出实例化对象,返回的值不知道从何产生?
-
问题1解决方案:经过查找,该实例化对象的值产生于方法toString,toString的返回值即为实例化对象的本身值,在此产生。
-
问题2:对枚举型变量掌握不足,对其返回值类型产生误解。
-
问题2解决方案:枚举视为一个类,在Java中常用两种方法,a.name(),a.ordinal()。其返回值应为变量本身的值,而不为布尔型。
代码托管
上周考试错题总结
- 错题1及原因:In Java a variable may contain
A
.
a value or a reference
B
.
a package
C
.
a method
D
.
a class
E
.
any of the above
答案:E 变量定义广泛,包括以上所有。
- 错题2及原因:Which properties are true of String objects?
A
.
Their lengths never change
B
.
The shortest string has zero length
C
.
Individual characters within a String may be changed using the replace method
D
.
The index of the first character in a string is one
E
.
Only A and B are true
答案:E 字符串是不可变的。 这意味着一旦创建了一个字符串对象,它就不能被改变。 因此,字符串的长度一旦创建就不会改变。 最短的字符串是“”在引号之间没有字符,所以长度为零。
-错题3:In the StringMutation program shown in Listing 3.1, if phrase is initialized to "Einstein" what will Mutation #3 yield if Mutation #1: mutation1 = phrase.concat(".")?
A
.
Einstein.
B
.
EINSTEIN.
C
.
XINSTXIN.
D
.
einstein.
E
.
xinstxin.
答案:C 题目中的方法在原句的基础上加了一个“.”,如果继续,第三步会将所有E换为X。
- 错题4:When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
答案:错误 double float 类型不能用==比较,与无限小的浮点型作差比较。
结对及互评
-
正确使用Markdown语法加1分:
-
模板中的要素齐全加1分
-
教材学习中的问题和解决过程, (加2分)
-
代码调试中的问题和解决过程, (加2分)
-
周五前发博客的加1分
-
进度条中记录学习时间与改进情况的加1分
-
错题学习深入的加1分
-
结对学习情况真实可信的加1分
点评过的同学博客和代码
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 1000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 |
-
计划学习时间:10小时
-
实际学习时间:9小时