20145203盖泽双《Java程序设计》第三周学习总结

20145203盖泽双《Java程序设计》第三周学习总结

教材学习内容总结

1、两个基本的标准类:java.util.Scanner与java.math.BigDecimal。

2、BigDecimal提供有plus()、substract()、multiply()、divide()可以进行加、减、乘、除等运算。

3、可以使用Long、Integer、Double、Float、Boolean、Byte等类来打包基本类型。这就是所谓的打包器。

4、Integer提供的compareTo()方法,可与另一个Integer对象进行比较,小与compareTo()传入对象打包值就返回-1,否则就是1。

5、如果默认初始值不符合你的需求,则可以使用java.util.Arrays的fill()方法来设定新建数组的元素。

6、System.arraycopy的五个参数分别是来源数组、来源其实索引、目的数组、目的起始索引、复制长度。

7、封装(Encapsulation)实际上使用方法(Method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。

①通过构造方法(构造函数)封装初始化流程。

②通过成员方法(函数)封装操作。

③通过成员变量封装数据。

8、如果没有声明权限修饰的成员,只有在相同包的类程序代码中才可以直接存取,也就是“包范围权限”。如果想在其他包的类程序代码中存取某包的类或对象成员,则该类或对象成员必须是公开成员,在Java中要使用public加以声明

9、使用import static语法要注意名称冲突问题,有些名称冲突编译程序可通过以下顺序来解析。

局部变量覆盖:选用方法中的同名变量、参数、方法名称。

成员覆盖:选用类中定义的同名数据成员、方法名称。

重载方法比较:使用import static的各个静态成员,若有同名冲突,尝试通过重载判断。

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

1、add()和plus()的区别。

解决过程:我理解为plus()只是BigDecimal提供的加法运算,而BigDecimal的add()等方法都会返回代表运算结果的BigDecimal,所以直接利用返回的BigDecimal再调用add()的方法。

2、不知道Integer装的是什么类型的箱。

解决过程:认真翻书查阅之后,我发现Boolean、Byte、Short、Character、Integer、Long、Float或者Double分别打包boolean、byte、short、char、long、float、、double等基本类型。

3、不明白索引是什么?

解决过程:经过翻书我理解为、如果把二维数组当作一个矩阵的话,索引就相当于是矩阵中每个数的坐标。用来准确地查找每个数的位置。

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

1、不知道p100、p102的代码中System.out.println()的意思。

解决过程:我进行了一下尝试:

我发现加上这句话的执行结果和书上是一样的。如果不加这句话,执行的结果就是这样的:

这是什么原因呢?难道这句话的作用仅仅是空格的作用?

2、调试代码的时候,我不明白这个代码为什么i++最后输出的结果会是10:

解决过程:我问了几个同学他们也对这个问题不太理解。只能理解为输出的时候还未进行++运算!

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

这次学习java我觉得很抽象,不太好理解。接触了越来越多的以前没有接触过的东西了,比如操作对象什么的。有的时候读书的时候会遇到一些很难理解的东西,但是只要反复的一字一句的去研读,就能产生自己的新理解,然后再在此基础上不断学习更多的知识,不断地完善自己的认知。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 2/2 20/20
第二周 200/300 3/5 30/50
第三周 200/400 1/6 30/80
第四周 000/0000 0/0 00/00

参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导
  • ...

你可能感兴趣的:(20145203盖泽双《Java程序设计》第三周学习总结)