20172325 2017-2018-2 《Java程序设计》第五周学习总结

时间:2022-12-21 22:13:32

20172325 2017-2018-2 《Java程序设计》第五周学习总结

教材学习内容总结

1.布尔表达式的值只有真或假,表达式的结果决定了下一步将要执行的语句。
2.循环语句可以用在多次重复执行某些程序语句。像条件语句一样,循环语句也建立在布尔表达式的基础上,由布尔表达式来执行。
3.运算符有很多种类型,本章学习了相等性运算符、关系运算符和逻辑运算符,分别包括“==”,“!=”;或与非等。
4.if、if-else和switch语句可以相互带入,特殊情况可以相互替换。
5.语句块的使用,if语句的嵌套:在一个嵌套的if语句中,else子句和它前面最近且未匹配的if语句相匹配。
数据比较。
6.浮点数比较时比较特殊,由于浮点数大多是计算结果后产生,不可能达到完全每一位相同,则在比较时引入一个常量TOLERANCE,若两浮点数之间的差值不大于该常量则可以近似看做相同。
7.String类中equals方法比较两个字符串的字符是否相同,compareTo方法用于判断两个字符的相对顺序关系,该方法的返回值是一个整型数。
8.三种功能等价的循环语句while、do、for,do一定执行一次循环体,for用于知道需循环几次,for中break的重要性。
9.迭代器主要是用来处理某个集合,每一个迭代器对象都有一个可以返回布尔值的 hasNext方法

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

  • 问题1:对逻辑与或非掌握不清尤其是在做课后习题的时候,与和或有是不会有差异,但是概念上存在差异
  • 问题1解决方案:课本上讲的不是特别清楚,只有简单的介绍,于是百度了一下
    20172325 2017-2018-2 《Java程序设计》第五周学习总结

  • 问题2:对hasNext()和Next()的理解不清,还有对
  • 问题2解决方案:在例题实践中多次操作,经验的总结是只要碰到了集合输出的操作,就一定要使用Iterator接口,因为这是最标准的做法。

  • 问题3:在嵌套语句中大括号的作用
  • 问题三解决方案:在有大括号和没有大括号的情况下编译代码,发现大括号的使用非常重要,他是区分两个或多个语句间最直接的方式,如果没有大括号,条件语句可能会识别错误。

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

  • 问题1:在PP5.3的实践过程中,没有正确的区分出各种数字,而且在最后的统计中也出现了差错,没能统计个数。
  • 问题1解决方案:看了书,问了学长,发现是某些变量的定义出了问题,而且在条件语句的顺序上也有所偏差,改正后成功。
    20172325 2017-2018-2 《Java程序设计》第五周学习总结

  • 问题2:在PP5.7的实践中输入了我的选择可是结果却一脸懵逼
    20172325 2017-2018-2 《Java程序设计》第五周学习总结

  • 问题2解决方案:原来在我定义的时候就已经对她有一个初始化过程了,后期只需要输入内容
    20172325 2017-2018-2 《Java程序设计》第五周学习总结

  • 问题3:这里第一次出现是否终止程序,所以在操作中有很多失误,结果就是程序自行结束。
    20172325 2017-2018-2 《Java程序设计》第五周学习总结

  • 问题3解决方案:在同学的帮助下,搞了一个类似分块读取的命令,,或者说当我输入输入“n”的时候,将会出现类似于刷新一遍的过程,很神奇,但最终是成功了。
    20172325 2017-2018-2 《Java程序设计》第五周学习总结
    20172325 2017-2018-2 《Java程序设计》第五周学习总结
    20172325 2017-2018-2 《Java程序设计》第五周学习总结

代码托管

20172325 2017-2018-2 《Java程序设计》第五周学习总结

上周考试错题总结

  • Which of the following reserved words in Java is used to create an instance of a class?
    A.class
    B.public
    C.public or private, either could be used
    D.import
    E.new
    解析:保留字“new”用于实例化一个对象,声明new后面跟着的是类名,这就是类的构造方法。

  • Instance data for a Java class
    A.are limited to primitive types (e.g., int, float, char)
    B.are limited to Strings
    C.are limited to objects(e.g., Strings, classes defined by other programmers)
    D.may be primitive types or objects, but objects must be defined to be private
    E.may be primitive types or objects
    解析:实例数据是组成类的实体,它可以是任何可用的类型,无论是原始的还是对象的,public型还是private型。

  • Formal parameters are those that appear in the method call and actual parameters are those that appear in the method header. (形式参数是在方法调用中出现的参数,实际参数是在方法头中出现的参数。)
    A.true
    B.false
    解析:实际参数是在方法调用中出现的参数,形式参数是在方法头中出现的参数。

  • In order to preserve encapsulation of an object, we would do all of the following except for which one?
    A.Make the instance data private
    B.Define the methods in the class to access and manipulate the instance data
    C.Make the methods of the class public
    D.Make the class final
    E.All of the above preserve encapsulation
    解析:封装意味着该类包含了操纵数据所需的数据和方法。为了正确地保存封装,实例数据不应该直接从类之外访问,因此实例数据是私有的,并且定义了方法来访问和操纵实例数据。此外,访问和操纵实例数据的方法被公开,以便其他类可以使用该对象。

  • If a method does not have a return statement, then
    A.it will produce a syntax error when compiled
    B.it must be a void method
    C.it can not be called from outside the class that defined the method
    D.it must be defined to be a public method
    E.it must be an int, double, float or String method
    解析:只有void方法不用返回,其余的都有相应的返回值。

  • Formal parameters are those that appear in the method call and actual parameters are those that appear in the method header.
    A.true
    B.alse
    解析:形参是方法头里面的,实参是方法内部的参数。

  • Inheritance through an extended (derived) class supports which of the following concepts?
    A.interfaces
    B.modulary
    C.information hiding
    D.code reuse
    E.correctness
    解析:代码重用是通过延长一个类并继承它,新类不必重新实现任何继承的方法或实例数据。

  • The following for-loop is an infinite loop.
    for (int j = 0; j < 1000; ) i++;
    A.true
    B.false
    解析:此循环将J初始化为0,并将其与1000进行比较,但在每次循环迭代后不会更改J。实际上,当值太大而无法存储在内存中时,循环最终将以运行时错误结束,但逻辑上这是一个无限循环。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 129/129 1/1 20/20
第二周 359/488 1/2 18/38
第三周 521/1009 2/4 22/60
第四周 1057/2066 1/5 30/90
第五周 636/2702 1/6 30/120

参考资料

《Java程序设计与数据结构教程》
《Java学习笔记(第8版)》学习指导