学号 2019-2020-2.3 《数据结构与面向对象程序设计》第2.3周学习总结
教材学习内容总结
第二章 课本内容
变量类型:字符型
char ,String
;整形int,short,long
;浮点型float,double
.变量类型之间的转换。Scanner
类的引入。在引入类时,加入import声明,类在使用时声明其库类是十分有必要,否则相应方法将无法使用。第三章 课本内容
创建对象,某些类在使用时,要提前将对象实例化,以引用对象,在Java学习中,要时刻建立类与对象的概念。
String
类的引用,了解String中众多方法的使用,String类在使用时不需要提前使用import声明。Random
类的使用,Random在使用时,要提前用import声明,为import java.util.Random;
。
另外特别注意,随机生成整形数时,要减1;生成浮点型数时,不变;Math
类的使用,math类使用时不需要
提前声明,也不需要实例化对象,用于解决数学问题。注意,其中包含pi,调用方法为Math.PI
,pi为double,注意运算结果的变量类型。
教材学习中的问题和解决过程
- 问题1:对类的实例化不太理解,那些需要实例化,那些不需要实例化分不清。
问题1解决方案:研究后,发现对于静态的类,不需要实例化,可直接引用,如Math。而对于动态的类使用,要用于生成新变量,接收新变量的动态类来说,引用方法必须实例化对象。
- 问题2:对数据类型的转换使用不够熟练。
问题2解决方案:通过总结,了解各种变量类型占用空间的大小,并结合练习,认识到数据类型转换一般发生于小空间转换为大空间上,如果强制转换后程序报错数据丢失,可通过加大结果变量的空间来接收数据。
- 问题3:在建立对象的学习中,对对象地址产生疑惑,这与C语言不同。
问题3解决办法:因对象在Java中是针对地址操作,所以比C语言多了许多操作,字符串可直接通过地址统一实现数据赋值,但两者就使用同一地址,相当于是同一变量。
代码调试中的问题和解决过程
- 问题1:代码
4/3.0
出现报错,运算无法进行。本想通过将3改为3.0是运算结果为浮点型,但编译时直接报错。 问题1解决方案:通过多次测试,得出结论,被除数不能设定为小数,若要通过此方法改变数据类型,可在分子上改为小数。
- 问题2:
float a;a=5/2;
此代码运行结果,a=2.0。 问题2解决方案:通过资料查询,搞清运算顺序,在运算时,先进行5/2的操作,结果为2。再将结果转为浮点型,所以结果显示为2.0。应该为a=(float)5/2。先将5转为浮点型,再运算得出正确小数结果。
扫描二维码关注公众号,回复: 7336459 查看本文章
代码托管
上周考试错题总结
- 错题1: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 float型变量转为int型需要丢失小数部分的数据,以上都是拓宽行转换,不会丢失数据,因此不需要强制转换。
- 错题2 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 取余运算符只能用在整形上,结果和中途运算都只能是整形。
- 错题3: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 不加引号,可直接运算。
- 错误4:The values of (double) 5 / 2 and (double) (5 / 2) are identical. ((double) 5 / 2和(double) (5 / 2)的值是相同的。)
A
.
true
B
.
false
答案:B Java运算有顺序要求,第一个先将5转为浮点型,答案为2.5;后一个新运算,再转为浮点型,答案为2。
结对及互评
- 博客中值得学习的或问题:
- 对学习态度认真,能合理安排日后复习工作。
- 面对代码错误能积极反思并记录下来。
- 基于评分标准,我给本博客打分:12分。得分情况如下:
正确使用Markdown语法加1分:
模板中的要素齐全加1分
教材学习中的问题和解决过程, (加3分)
代码调试中的问题和解决过程, (加3分)
周五前发博客的加1分
进度条中记录学习时间与改进情况的加1分
错题学习深入的加1分
结对学习情况真实可信的加1分
- 博客中值得学习的或问题:
排版清楚,内容充实,有自己的思考过程。 - 博客中值得学习的或问题:
- 对学习态度认真,能合理安排日后复习工作。
- 面对代码错误能积极反思并记录下来。
- 基于评分标准,我给本博客打分:12分。得分情况如下:
正确使用Markdown语法加1分:
模板中的要素齐全加1分
教材学习中的问题和解决过程, (加3分)
代码调试中的问题和解决过程, (加3分)
周五前发博客的加1分
进度条中记录学习时间与改进情况的加1分
错题学习深入的加1分
结对学习情况真实可信的加1分
点评过的同学博客和代码
- 本周结对学习情况
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/200 | 2/2 | 20/20 | |
第二周 | 299/500 | 4/4 | 21/38 |
计划学习时间:20小时
实际学习时间:21小时
改进情况:自学能力有所提高,对java编程掌握更好。