《数据结构与面向对象程序设计》第2、3周学习总结

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

教材学习内容总结

第二章 数据和表达式:

1、字符串的基本概念和String类的引入。

2、print和println方法的介绍和区别,println输出后会换到下一行行首而print不会。

3、使用+连接两个字符串。

4、转义字符的使用,\n表示强制在下一行输出,\t表示一个制表符

5、变量的定义,如果在声明之前加final修饰符,则表明这个常量的值不再改变。

6、赋值语句的使用,不能将一个类型的值赋给与之不匹配的另一个类型的变量。

7、常量是在其存在期间保存一个具体的值。

8、基本的数据类型,整型和浮点型、字符类型、boolean类型(用来判断真假,变量只能从两个值里面二选一)、表达式、算术运算符的使用、运算符的优先级等等。

第三章 使用类和对象
1、创建对象,new运算符返回新创建对象的引用,多个引用变量可以指向同一个对象。

2、String类中比较有用的方法以及String的用法。

3、包的使用和import声明(java.lang包中的所有类将自动引入到每个程序中)

4、Random类和Math类的使用

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

  • 问题1:
    输出出现问题,无法打印

  • 问题1解决方案:我发现我使用了println(+(xx)+)的格式

  • 问题2:println("多少钱\n");发现会输出多少钱\n

  • 问题2解决方案:看转义字符章节后发现,\n只能在中间使用

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

  • 问题1:第二周做计算器实验时启动jdb调试之后,list显示当前运行到第几行时显示找不到源文件。
  • 问题1解决方案:首先我请教了同学,未果,然后我问了学长和助教,都未果,最后在冷冲同学的一篇博客的帮助下,按照博客中的步骤解决了这个老大难问题,博客地址如下:解决JAVA单步调试键盘被jdb占用的问题
  • 问题2:

代码调试无法通过

  • 问题2解决方案:在询问助教后得知类里面不能再次定义类,且定义字符串的时候不能在前面加public这是画蛇添足的,并且调用类里的调用方法必须有和类名一致。

代码托管

上周考试错题总结

  • 错题1:
    If you want to output the text "hi there", including the quote marks, which of the following could do that? (如果你想输出文本"hi there",包括引号在内,下面哪个语句可以做到?)

A .System.out.println("hi there");

B .System.out.println(""hi there"");

C .System.out.println(""hi there");

D .System.out.println(""hi there"");

E .none, it is not possible to output a quote mark because it is used to mark the beginning and ending of the String to be output (无,不可能输出引号,因为它被用来标记字符串的开始和结束)

正确答案: D 你的答案: B

  • 错误原因:
    没有好好看课本转义符的内容,转义符内容中明确指出了想要加""必须加一个/。

  • 错题2:
    word println is a(n) (单词println是一个)

A .method (方法)

B .reserved word (保留字)

C .variable (变量)

D .class (类)

E .String (字符串)

正确答案: A 你的答案: C

  • 错误原因:当时并没有学习类的知识,迷迷糊糊乱蒙了一个,现在已经分清类和方法的区别了。

  • 错题3:
    What value will z have if we execute the following assignment statement? float z = 5 / 10; (如果我们执行下面的赋值语句,得到的z将会是什么值?

A .z will equal 0.0 (z将等于0.0)

B .z will equal 0.5 (z将等于0.5)

C .z will equal 5.0 (z将等于5.0)

D .z will equal 0.05 (z将等于0.05)

E .none of the above, a run-time error arises because z is a float and 5 / 10 is an int (以上都不对,因为z是float类型,5 / 10是int类型,所以会发生运行时错误)

正确答案: A 你的答案: B

  • 错误原因:

没有好好理解int型整数相除可能会带来的后果,因为0.5小于1,两个int型会直接使其成为0.

  • 错题4:

A cast is required in which of the following situations? (下列哪种情况需要强制转换?)

A .using charAt to take an element of a String and store it in a char (使用charAt来获取字符串元素并将其存储为char类型)

B .storing an int in a float (将一个int类型的数存储为float类型)

C .storing a float in a double (将一个float类型的数存储为double类型)

D .storing a float in an int (将一个float类型的数存储为int类型)

E .all of the above require casts (以上所有情况都需要强制转换)

正确答案: D 你的答案: A

  • 错误原因:

没好好看课本类型转换的内容,课本上明确写道不同类型的数值想要转化,需要经过强制转化。

  • 错题5:

Assume that x, y, and z are all integers (int) equal to 50, 20, and 6 respectively. What is the result of x / y / z? (假设x、y和z都是整型数(int),分别等于50、20和6。那么x / y / z的结果是什么?)

  • 错误原因:

盲目以为这种运算格式是不合理的,误以为这种形式直接就会导致错误。

  • 错题6:

What is output with the statement System.out.println(x+y); if x and y are int values where x=10 and y=5? (如果x和y是int类型的数值,x=10,y=5,那么语句System.out.println(x+y);的输出是什么?)

A .15

B .105

C .10 5

D .x+y

E .An error since neither x nor y is a String (因x和y都不是字符串而引起的一个错误)

正确答案: A 你的答案: B

  • 错误原因:

先前不知道课本上明确写着+可以两个字符串。

  • 错题6

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

正确答案: A 你的答案: E

  • 错误原因:

java类中有方法和变量,没有包

  • 错题7:

What happens if you attempt to use a variable before it has been initialized?

A .A syntax error may be generated by the compiler

B .A runtime error may occur during execution

C .A "garbage" or "uninitialized" value will be used in the computation

D .A value of zero is used if a variable has not been initialized

E .Answers A and B are correct

正确答案: E 你的答案: A

  • 错误原因:

当时没有考虑太多,认为一般不选同时选两项的答案,然后就蒙了A。

  • 错题8:

What will be displayed by this command: System.out.println(Math.pow(3, 3-1));

A .9

B .8

C .6

D .4

E .27

正确答案: A 你的答案: C

  • 错误原因:

考试前没有认真查看课本,课本上明确写着Math.pow(3, 2) 是三的平方,由于我没有看到,误以为是3*2,闹出了这种笑话。

结对及互评

  • 本周结对学习情况

20182330

点评:

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

  • 博客引用生动活泼,解决问题时运用了多种方式。

  • 问题:排版简单,缺乏新意希望加强markdown水平

  • 代码中值得学习的或问题:

    • 代码感觉基础较差,写的不是特别好,有待提高
  • 基于评分标准,我给本博客打分:16分。得分情况如下:

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

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

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

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

  5. 其他加分(加7分)

  6. 进度条中记录学习时间与改进情况(1)

  7. 感想,体会不假大空(1)

  8. 有动手写新代码(1)

  9. 排版精美(1)

  10. 错题学习深入(1)

  11. 点评认真,能指出博客和代码中的问题(1)

  12. 结对学习情况真实可信(1)

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

经过本周的学习我对java的理解更加深刻,但对于java类的理解还不足,希望在未来的日子里加倍努力,把代码敲好,把博客写好。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第2、3周 387/400 2/2 20/20

参考资料

posted @ 2019-09-22 22:39  20182314鞠明翰  阅读(228)  评论(3编辑  收藏  举报