20145302张薇《Java程序设计》第三周学习总结
20145302张薇《Java程序设计》第三周学习总结
教材学习内容总结
- 第四章
- 定义类 一个原始码中有多少类就会有多少
.class
文档。 - 标准类
- 使用
java.util.scanner
让用户输入数据,在开头使用import
偷懒吧
变量名=scanner.nextxxx();
- 使用
java.math.BigDecimal
提高浮点数计算的精确度,在开头用import
偷懒,BigDecimal提供加减乘除等计算方法,而且可以叠加使用
op1.add(op2).subtract(op3).multioly(op4).divide(OP5).equals(result)
- 对象指定与相等性
- 对于
==
来说,是在比较两个名牌是否绑到同一对象。 - 对于
a.equals(b)
来说,是在比较a、b两个名牌的内容值是否相等。
- 基本类型打包器
Integer
提供a.compareTo(b)
方法,a=b时返回0,a<b时返回-1,a>b时返回1。- 最好不要用==来比较两个实例的内容值。
- 数组对象
- 数组索引从0开始,存取超过了索引范围,就会出现ArrayIndexOutOfBoundsException错误。
- 使用new建立数组后,每个元素都有默认值,教材P98。
- 数组一旦建立,长度就固定了。
- 无论是
System.arraycopy()
还是Arrays.copyOf()
,用在类类型声明的数组时,都是执行浅层复制。
- 字符串对象
- 字符串的本质是打包字符数组的对象,是
java.lang.String
类的实例。 - 以“”包括的字符串,只要内容相同(序列、大小写均要相同),无论在程序代码中出现几次,JVM只会建立一个String实例,并在字符串池中维护。
- 与对象指定相通,比较两个字符串的内容要用
equals()
. - 字符串对象一旦建立,就无法更改对象中的任何内容。
- 使用+连接字符会产生新的String实例,不能把+用在重复性的连接场合。
- 查询Java API文件随着不断深入的学习,我们对API的认识会更加深刻。
- 第五章
- 何谓封装
- 封装的目的主要就是隐藏对象细节,将对象当作黑箱进行操作。
- 在java命名规范中,取值方法的名称形式是固定的,也就是以get开头,之后接上首写字母大写的单词。
- 创建对象时,数据成员会初始化,如果没有指定初始值,则会使用默认值初始化。
- 类语法细节
- 如果定义类时,没有撰写任何构造函数,编译程序会自动加入一个无参数、内容为空的构造函数,称为默认构造函数。
- 可以定义多个构造函数,只要参数类型或个数不同,这称为重载构造函数。
public
用在类前,表示的这个类是公开类,这样就可以在其他包的类中使用;用在方法前,这样就表示其它包中的方法可以直接调用这个方法;用在函数前,这表示其它包中的类可以直接调用这个构造函数;用在成员变量前,表示这个成员变量是公开的,这样别人可以直接调取你类中的变量。this
除了被声明为static的地方外,this关键字可以出现在类中的任何地方,在对象建立后为“这个对象”的参考名称。static
用于修饰成员变量和成员函数,被声明为static的成员,不会让个别对象拥有,而是属于类。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 | 了解对象 |
参考资料
20145302张薇《Java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 20145302张薇 《Java程序设计》第二周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...
- 20145302张薇《Java程序设计》第九周学习总结
20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...
- 20145302张薇 Java第一周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 1995年,java被公认诞生.java第一开始为了消费性数字产品(如手机)而设计,所以java本身有很 ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 20145313张雪纯 《Java程序设计》8周学习总结
20145313张雪纯 <Java程序设计>8周学习总结 教材学习内容总结 java.util.logging包的优点在于提供了日志功能相关类与接口,不必额外配置日志组件就可以在标准jav ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...
随机推荐
- 【BZOJ4563】[Haoi2016]放棋子 错排+高精度
[BZOJ4563][Haoi2016]放棋子 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍 ...
- 160527、项目上线后session(远程session)
import java.io.Serializable;import java.util.HashMap;import java.util.Map;import java.util.UUID;impo ...
- Python--进阶处理5
# 使用路径名来获取文件名,目录名,绝对路径等import ospath = r'F:\myProject\lean\a'# Get the last component of the pathbas ...
- 解决;R语言使用sqldf库是报错"Failed to connect to database: Error: Access denied for user '..'@'localhost' (using password: NO) Error in !dbPreExists : invalid argument type"
原因:在使用sqldf时,不需要加载RMySQL库 解决方案:在控制台执行释放RMySQL库加载 detach("package:RMySQL", unload=T);
- ChromeExtension 写一个extension
demo: https://github.com/rayshen/iExtensionDemo 使用: 1.打开扩展页面:chrome://extensions/ 2. 里面包含文件的结构是这样: 1 ...
- CentOS 部署openVPN
一.openVPN工作原理 VPN技术通过密钥交换.封装.认证.加密手段在公共网络上建立起私密的隧道,保障传输数据的完整性.私密性和有效性.OpenVPN是近年来新出现的开放源码项目,实现了SSLVP ...
- Spark Streaming Programming Guide
参考,http://spark.incubator.apache.org/docs/latest/streaming-programming-guide.html Overview SparkStre ...
- python基础-第四篇-4.2文件操作
基本打开模式 文件操作的流程:打开文件,操作文件,关闭文件 打开文件方法:open(文件名,模式,编码) file = open(‘文件名’) 模式在不给值的情况下,默认为只读,而且如果是非当前的目录 ...
- MFC Spin 控件
一般应用: 设置属性: Auto Buddy(自动取关联控件为TAB顺序前一个)Set Buddy Interger(使控件设置关联控件数值,这个值可以是十进制或十六进制)Wrap(数值超过范围时循环 ...
- Ningx代码研究.
概述 研究计划 参与人员 研究文档 学习emiller的文章 熟悉nginx的基本数据结构 nginx 代码的目录结构 nginx简单的数据类型的表示 nginx字符串的数据类型的表示 内存分配相关 ...