20145302张薇《Java程序设计》第三周学习总结

教材学习内容总结

  • 第四章
  • 定义类 一个原始码中有多少类就会有多少.class文档。
  • 标准类
  1. 使用java.util.scanner让用户输入数据,在开头使用import偷懒吧
变量名=scanner.nextxxx();
  1. 使用java.math.BigDecimal提高浮点数计算的精确度,在开头用import偷懒,BigDecimal提供加减乘除等计算方法,而且可以叠加使用
op1.add(op2).subtract(op3).multioly(op4).divide(OP5).equals(result)
  • 对象指定与相等性
  1. 对于==来说,是在比较两个名牌是否绑到同一对象。
  2. 对于a.equals(b)来说,是在比较a、b两个名牌的内容值是否相等。
  • 基本类型打包器
  1. Integer提供a.compareTo(b)方法,a=b时返回0,a<b时返回-1,a>b时返回1。
  2. 最好不要用==来比较两个实例的内容值。
  • 数组对象
  1. 数组索引从0开始,存取超过了索引范围,就会出现ArrayIndexOutOfBoundsException错误。
  2. 使用new建立数组后,每个元素都有默认值,教材P98。
  3. 数组一旦建立,长度就固定了。
  4. 无论是System.arraycopy()还是Arrays.copyOf(),用在类类型声明的数组时,都是执行浅层复制。
  • 字符串对象
  1. 字符串的本质是打包字符数组的对象,是java.lang.String类的实例。
  2. 以“”包括的字符串,只要内容相同(序列、大小写均要相同),无论在程序代码中出现几次,JVM只会建立一个String实例,并在字符串池中维护。
  3. 与对象指定相通,比较两个字符串的内容要用equals().
  4. 字符串对象一旦建立,就无法更改对象中的任何内容。
  5. 使用+连接字符会产生新的String实例,不能把+用在重复性的连接场合。
  • 查询Java API文件随着不断深入的学习,我们对API的认识会更加深刻。
  • 第五章
  • 何谓封装
  1. 封装的目的主要就是隐藏对象细节,将对象当作黑箱进行操作。
  2. 在java命名规范中,取值方法的名称形式是固定的,也就是以get开头,之后接上首写字母大写的单词。
  3. 创建对象时,数据成员会初始化,如果没有指定初始值,则会使用默认值初始化。
  • 类语法细节
  1. 如果定义类时,没有撰写任何构造函数,编译程序会自动加入一个无参数、内容为空的构造函数,称为默认构造函数。
  2. 可以定义多个构造函数,只要参数类型或个数不同,这称为重载构造函数。
  3. public用在类前,表示的这个类是公开类,这样就可以在其他包的类中使用;用在方法前,这样就表示其它包中的方法可以直接调用这个方法;用在函数前,这表示其它包中的类可以直接调用这个构造函数;用在成员变量前,表示这个成员变量是公开的,这样别人可以直接调取你类中的变量。
  4. this除了被声明为static的地方外,this关键字可以出现在类中的任何地方,在对象建立后为“这个对象”的参考名称。
  5. static用于修饰成员变量和成员函数,被声明为static的成员,不会让个别对象拥有,而是属于类。
  6. import static语法是为了偷懒,但是要注意名称冲突问题,有些名称冲突编译程序会通过以下程序来解析:
- 局部变量覆盖:选用方法中的同名变量、参数、方法名称。
- 成员覆盖:选用类中定义的同名数据成员、方法名称。
- 重载方法比较:使用import static的各个静态成员,若有同名冲突,尝试通过重载判断。

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

  • 问题1教材P88说明BigDecimal提供加减乘除的运算,其中“加”为plus(),而下面的程序利用的是add(),这二者一样吗?
  • 解决过程1 百度上没有相关问题,尚未解决。
  • 问题2教材P92关于装、拆箱问题不明白,下例显示结果为20与10,为何不是20与21?
Integer i=10;
System.out.println(i+10);
System.out.println(i++);
  • 解决过程2我想到了第三章的第八题,困惑为何第八题i的值是叠加进行的,到这里就不一样了,也许因为这里是输出的原因,然后意识到i++是一个整体,输出i++意味着:输出=i,i=i+1;,所以输出为20和10。
  • 问题3教材P119第一题我以为显示结果应该是false、false,不明白为何是ture、ture。
  • 解决过程3又对比了一下书本前方的内容,发现在对象指定与相关性那部分的内容中,程序利用new关键词建立了新的对象,所以二者不相等,而本题不是。
  • 问题4教材P93关于编译程序蜜糖的内部为何那么展开很不明白。
  • 解决过程4询问了周围的同学,大家都不清楚,尚未解决。

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

  • 第四章课后练习第一题代码如下:


import java.util.Scanner;public class Fibonacci{public static void main(String[] args){Scanner scanner=new Scanner(System.in);int f1=0;int f2=1;int f_n;int n;System.out.printf("求几个费式数?%n");n=scanner.nextInt();for(int i=0;i<n;i++){System.out.println(f1);f_n=f1+f2;f1=f2;f2=f_n;}}
}
  • 结果截图:

代码托管

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

  • 这两章的专业术语太多了,文字描述的很晦涩,工作量很大,代码很多,需要注意的细节也很多,很繁琐。
  • 看了这两章才发现,java和C语言真的是两种语言……二者其实是有很多不同的,java都是面向对象的,如果总用C的思维来看代码、编代码,那么就很难看懂程序、编写出正确的程序了。
  • 还是要多练习,IDEA有很多选项并不知道如何使用,并没有充分的利用编写软件的优势,应该不断探索。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 1500行 15篇 400小时
第一周 10/10 2/2 10/10 基础知识
第二周 100/100 3/3 35/35 语法知识
第三周 300/300 4/4 60/60 了解对象

参考资料

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

转载于:https://www.cnblogs.com/5302v/p/5299784.html

20145302张薇《Java程序设计》第三周学习总结相关推荐

  1. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  2. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  3. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

  4. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  5. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  6. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  7. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  8. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  9. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  10. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

最新文章

  1. java filefilter递归_Java中的递归+文件过滤器
  2. app微信支付的集成步骤
  3. C/C++将十进制数转为二进制并输出
  4. Spring源码:IOC容器
  5. 前端学习(1):HTML和CSS导学
  6. [小错误][JAVA][数组初始化]数组静态初始化和动态初始化不能混用
  7. java输出华氏摄氏温度转换表_Python练习题2.10输出华氏-摄氏温度转换表
  8. 深度剖解“IF表达式”底层实现过程
  9. Java学习——HashMap
  10. 【图像分割】基于matlab粒子群优化指数熵图像分割【含Matlab源码 287期】
  11. python第三项基础知识_Python学习心得——基础知识(三)
  12. Android自定义Scrollbar样式
  13. 3dmax2014 uv用法_3DSMAX演示一个硬表面模型UV展开的方法
  14. MSDN系列 14 -- NDIS Protocol Driver 入门
  15. 数据分析实例——美国加州人口分析[isnull().any()/.unique()/merge/set_index/df.query/sort_values]
  16. 毕业设计--智能环境监测系统基于harmonyOS的移动端应用开发
  17. [Swift]LeetCode93. 复原IP地址 | Restore IP Addresses
  18. 自由编写一个创意进度展示条
  19. 2020G1工业锅炉司炉操作证考试及G1工业锅炉司炉作业模拟考试
  20. VUE跑马灯之文字无缝连接

热门文章

  1. 遗传算法python与matlab_遗传算法简单介绍与MATLAB实现
  2. Apache构建虚拟web主机
  3. Centos7.4安装Mysql5.6
  4. iOS内存管理部分内容
  5. 大数据应用让医疗护理更高效
  6. FireDac 组件说明二
  7. 《Splunk智能运维实战》——2.8 列出浏览次数最多的产品
  8. c++实现双向链表的常用功能
  9. centos无法启动,修复grub.conf文件
  10. JQuery autocomplete使用手册