20145305 《Java程序设计》第3周学习总结
教材学习内容总结
1.“一类一文件”
2.参考名称与对象数据成员同名时,可以在数据成员前使用this区别
3.不能用直接比较浮点数运算结果
4.=是用在指定参考名称参考某个对象,是用在比较两个参考名称是否参考同一对象
5.要比较字符串实际字符内容是否相同,不使用==,要使用equals()
6.使用+连接字符串会产生新的String实例,不要将+用在重复性的连接场合
7.取值方法的名称是固定的,以get开头,之后接上首字母大写的单词
8.this()代表了调用另一个构造函数
9.对象数据成员被声明为final,没有明确使用=指定值,表示延迟对象成员值的指定,在构造函数执行流程中一定要有指定值的动作,否则编译错误
10.被声明为static的成员,属于类,不会让个别对象拥有
11.首字母大写为类,通过类名称与“.”运算符存取就是static成员
12.在static方法或区块中不能出现this关键字,static方法中不能用非static数据或方法成员
13.使用不定长度自变量时,方法上声明的不定长度参数必须是参数列最后一个
教材学习中的问题和解决过程
P101页
package cc.openhome;
public class IrregularArray {
public static void main(String[] args) {
int[][] arr = new int[2][];
arr[0] = new int[] {1, 2, 3, 4, 5};
arr[1] = new int[] {1, 2, 3};
for(int[] row : arr) {
for(int value : row) {
System.out.printf("%2d", value);
}
System.out.println();
}
}
}
代码中的int[2][]只提供了第一个数值,但是2是两个索引吗还是两个对象
P136页提到的编译程序在处理重载方法时,处理的顺序还不理解
代码调试中的问题和解决过程
P139页中Something(int x)版本的构造函数对final对象成员x设值,但用户调用了Something()版本的构造函数,x不会被设值,所以编译错误。为什么改为一下代码就可以通过编译
class Something {
final int x;
Something(){
this(10);
}
Something(int x){
this.x=x;
}
}
其他(感悟、思考等,可选)
感觉本周学习的都是JAVA核心的东西,有点难懂,书上好多代码都不是很懂
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | 基本掌握JAVA |
第一周 | 200/200 | 1/2 | 20/20 | 了解基本的JAVA |
第二周 | 250/450 | 2/4 | 20/40 | 了解基础语法 |
第三周 | 500/950 | 1/5 | 20/60 | 了解JAVA语法核心 |