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 |