1 2 3 4

20172310 2017-2018-2 《程序设计与数据结构》第三周学习总结

20172310 2017-2018-2 《程序设计与数据结构》第三周学习总结

教材学习内容总结

  • 第三章主要是学习了一下对象的创建和Java标准类库中的一些类。
  • new运算符返回对新创建对象的引用,但是当类中的方法是静态方法是,可以直接类名称调用它们。
  • 编写Java程序时,除了java.lang包中的将自动转化成可用类,其他包都需要用import声明。
  • 本章还学习了String类、Random类、Math类、格式化输出信息的方法和枚举类型包装器和自动装箱的概念。
  • 不得不说每章的信息量越来越多,想要学好Java还需要很多的努力。

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

  • 问题1:在看课本枚举型之一小节的时候没怎么理解的,课本上说枚举型是一种特殊的类。

  • 问题1解决方案:反复看了课本和给的例子中,发现枚举型用 enum 来声明一个枚举型变量,这个枚举型变量可以有无限个的枚举值,
    然后可以用这个枚举类型来声明一个枚举变量(只可以取枚举值中的一个)。此外,这个类并不是像其他类一样定义在方法中,而在
    类级层次上。

  • 问题2:在学习这章的内容时,接触到了很多新的类及其方法,所以不太熟练

  • 问题2解决方案:既然学的东西比较多,就要去从中寻找规律。其实大部分类的使用方式是差不多的,只是每个类各自的方法。这些是不可能全都记下来的,所以认识到了API文档的重要性。不熟练就要去练习,所以要更多的敲代码。

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

  • 问题1:

  • 问题1解决方案:当使用格式化输出NumberFormat类中getCurrencyInstance方法时,显示出来的是“¥”,而不是“$”。
    所以有些疑惑,当看到SR3.26这个自测题时,就明白了:当初设置虚拟机时所选的地区是中国,所以它会转化为当地的货币符号。

  • 问题2:

  • 问题2解决方案:课本后面的参考答案给出了

NumberFormat fmt = NumberFormat.getPercentageInstance();

这样一串代码,可编译时计算机给出了错误信息,学长教我使用了一下API文档,发现根本就没有这个方法,所以自己会找方法是很重要的。

代码托管

上周考试错题总结

  • 错题1:
    Which of the following is true regarding the mod operator, %? (关于求余运算符%,下面哪项是正确的?)
    A .It can only be performed on int values and its result is a double (它只能执行int类型的数值,其结果是double类型的数)
    B .It can only be performed on int values and its result is an int (它只能执行int类型的数值,其结果也是int类型的数)
    C .It can only be performed on float or double values and its result is an int (它只能执行float或者double类型的数值,其结果是int类型的数)
    D .It can only be performed on float or double values and its result is a double (它只能执行float或者double类型的数值,其结果是double类型的数)
    E .It can be performed on any numeric values, and the result always is numeric (它可以执行任何类型的数值,其结果始终是数值)
    正确答案: E 我的答案: B
    错因:没有理解求余运算。
    解析:求余运算其实可以执行任何类型的数值,结果也是数值,但大多数情况我们用整型值来执行求余运算。

  • 错题2:
    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
    解析:尝试了一下,确实是15,并不是我想的那样要"( (x + y) )"这样的格式。

  • 错题3:
    If you want to store into the String name the value "George Bush", you would do which statement? (如果你想把"George Bush"这个值存储为字符串类型的名字,你会执行那条语句?)
    A .String name = "George Bush";
    B .String name = new String("George Bush");
    C .String name = "George" + " " + "Bush";
    D .String name = new String("George" + " " + "Bush");
    E .Any of the above would work (上述都可以完成)
    正确答案: E 你的答案: B
    错因:在答题的时候还没有学习第三章
    解析:其实这四种表达方式都是可以的。但是我们通常会选择A这种简化的语法。

  • 错题4:
    A double is wider than a float and a float is wider than an int. (一个double类型的数比float类型的数更宽泛,一个float类型的数比一个int类型的数更宽泛。)
    A .true
    B .false
    正确答案: A 你的答案: B
    解析:更广泛的类型是更大,也可以存储更大的值的范围。double是64位的,float是32位的,int也是32位的,但是float的存储方式,它存储的数比int数更广泛。

  • 错题5:
    A variable of type boolean will store either a 0 or a 1. (Boolean类型的变量将被存储为0或1)
    A .true
    B .false
    正确答案: B 你的答案: A
    错因:想当然将0、1认为是true和false
    解析:布尔型变量只包含两个有效值:true和false,并不是用0、1来分别代表。

  • 错题6:
    You cannot cast a String to be a char and you cannot cast a String which stores a number to be an int, float or double. (你不能将字符串强制转换为char类型,也不能将一个字符串强制转换为int、float或double类型。)
    A .true
    B .false
    正确答案: A 你的答案: B
    错因:没有弄清字符串和基本数据类型的区别
    解析:字符串和基本数据类型是两个不一样的概念。字符串不能被强行转换为基本数据类型。

其他

在经过这一周的学习之后,在回顾当初的错题,发现当初的错误都挺简单的。这一发现让我看到学习果然使是我不断的进步,知识也在一点点的积累。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 127/127 1/1 25/25
第二周 278/405 1/2 20/45
第三周 442/847 1/3 20/65
posted @ 2018-03-23 20:39  qx2017  阅读(288)  评论(8编辑  收藏  举报
页尾