20172330 2017-2018-1 《Java程序设计》第三周学习总结
20172330 2017-2018-1 《Java程序设计》第三周学习总结
教材学习内容总结
这一章的主要内容是关于类与对象,通过对String类,Random类,Math类等一系列道德具体讲解与应用,让我们对创建对象有了更深的了解。
同时也对格式化输出进行了一系列的讲解:NumberFormat类DecimalFormat类的输出信息就行了讲述。
以及对于枚举类型的讲解。
教材学习中的问题和解决过程
- 问题1:Math类的数学函数中,对于如何求开方和平方不太理解。
- 问题1解决方案:1,重点内容sqrt是开方:
比如math.sqrt(9)结果为3 意思是求9的开方根,数学上称为根号2下的9
2.重点内容pow(a,b)
Math.pow(27, 3)意思是求27的三次方 就是272727的意思
重点内容假如你想求开三次方,或者四次方 可以借助pow方法
例如:Math.pow(27, 1/3) - 问题2:对于枚举型不理解,就比如课本88页,书上说:
enum Season { Winter ,Spring , Summer, fall},他说可能取值是Winter ,Spring , Summer, fall,那么这和之前的随机浮点数不是很相似么,都是给定一个范围,然后给你随机出一个结果 - 问题2解决方案:然后我查找了一些资料,发现了枚举型是有很多好处的,比如枚举类型的简洁性、安全性以及便捷性。这些都比类类型好。
(https://blog.csdn.net/javazejian/article/details/71333103#理解枚举类型)
代码调试中的问题和解决过程
-
问题1:在做pp3-5的时候,出现了一个问题给我显示有35个错误,我就从头到晚看了一遍,发现语法没错误啊。
-
问题1解决方案:刚好那天是实验课,然后喊来刘伟康学长结果人家看了之后给我加了一个大括号和分号之后错误全没了,哈哈哈,看来还是对基础的知识不太了解。
-
问题2:在做Li34的时候,发现和书上的“$“符号不一样,我是”¥“,然后我照着书上的样子检查了一遍,发现没有什么问题
-
问题2解决方案:然后在我问了别的同学之后,他们告诉我说因为咱们安装的时候已经是汉化的了,这就比较有趣了。
代码托管
上周考试错题总结
- 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类型,所以会发生运行时错误)
:5和10都是int值,所以5 / 10是整数除法。结果是0。虽然z是一个浮点数,可以存储真正的答案,0。5,它只因为整数除法得到0。为了得到0。5,我们必须先把5或10作为浮点数。
当时我没有看到前面的float,以为是double型的算法,5/10-=0.5 - If x is an int and y is a float, all of the following are legal except which assignment statement? (如果x是一个int类型的数,y是一个float类型的数,下面所有赋值语句中哪个不合法?)
A y = x;
B x = y;
C y = (float) x;
D x = (int) y;
E all of the above are legal (以上全部合法)
:因为x是int,不能只是一个浮点数,除非浮动是扮演一个int。没有明确在b的赋值语句,没有必要因为一个浮动(y)可以接受一个int值(x),C和D,明确投存在法律。 - 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 (上述都可以完成)
:有两种方法可以将字符串存储为字符串变量,通过使用“new string (string value)”构造一个新字符串,或者使用赋值语句,因此a或B都可以工作。在C和D中,我们使用了字符串连接操作符+的变体。所以这四种方法都行得通。这道题当时只看着b是正确的,结果cd是用字符串连接操作符的方法成功存储,这些知识还都不知道。 - What value will z have if we execute the following assignment statement?
int z = 50 / 10.00; (如果我们执行下面的赋值语句,z将得到什么值?)
A 5
B 5.0
C 50
D 10
E none of the above, a run-time error arises because z is an int and 50 / 10.00 is not (以上皆错,因z是一个整型数而50 / 10.00不是,会产生运行时错误)
: 因为10.00不是int,分裂产生一个双精度值不能存储在int z。为此,划分的结果必须扮演一个int之前存储在z,或价值10.00之前必须先扮演一个int划分。 确实10.00不是int类的当时没有考虑到 - 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
: 没有任何机制可以把一个字符串的基本类型之一,但也有方法可以执行类似的操作,并返回一个字符在一个给定的位置(charAt)或返回int,浮点数和双精度值相当于数字存储在字符串。 - There are three ways that data conversion may occurby assignment, by promotion, by casting. (可以通过赋值转换、提升转换和强制转换三种方式来实现数据转换。)
A true
B false
:赋值转换发生在赋值操作符右侧的值在被存储在左侧的变量之前被转换。当不同宽度的值组合在一起时,就会出现一个表达式。强制是一个程序员明确的控制数据转换过程的方法。
其他(感悟、思考等,可选)
这周在做实验项目的时候发现已经涉及到很多具体知识了,需要更好的将例题看懂。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 180/180 | 2/2 | 20/25 | |
第二周 | 312/414 | 2/4 | 20/45 | |
第三周 | 557/971 | 2/6 | 25/70 |
-
计划学习时间:24小时
-
实际学习时间:25小时