第四周学习总结

学号 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 类型不能用==比较,与无限小的浮点型作差比较。

结对及互评

  1. 正确使用Markdown语法加1分:

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

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

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

  5. 周五前发博客的加1分

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

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

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

点评过的同学博客和代码

  • 本周结对学习情况

  • 上周博客互评情况

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 1000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60

  • 计划学习时间:10小时

  • 实际学习时间:9小时

参考资料

posted @ 2019-09-30 17:04  20182315zjw  阅读(283)  评论(1编辑  收藏  举报