20155319 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结
第三周的学习量还是很大的,需要学习的内容更难了而且 量也变多了,所以投入了更多的时间到Java的学习中去。
第四章主要讲了Java基本类型中的类类型,如何定义类、构造函数、使用标准类、基本类型打包器、数组复制、字符串等内容查询API文档。
第五章主要内容包括封装、封装对象、类语法细节、this、static类成员、不定长度自变量、内部类
定义类
产生对象必须先定义类,对象是类的实例,对象和实例在Java中几乎是等义的名词。
- new新建一个对象
- class定义类时使用的关键词
- String变量的字符串表示
- char类型声明变量
=
参考至新建对象
使用标准类
- 使用java.util.Scanner标准类来进行输入。对于不同的类有不同的写法
nextInt()
nextByte()
nextFloat()
等等 - 使用java.math.BigDecimal来获得更好的精确度。加减乘除用
plus()
substract()
multiply()
divide()
数组
- 数组打印:数组就像是一个有很多小隔间的容器,每个小隔间可以放入一个元素,用for语句进行输出。如果是顺序地从头到尾取出数组使用
for(int score:scores)
- 数组排序:数组的常见使用方法就是获取最值和排序,其实二者差别不是很大,都是对数组内每一个小隔间的元素进行判断及重排序。
- 操作数组对象:如果事先不知道数组中的元素值,只知道元素个数,则可以通过new关键词指定长度来建立数组(例如:int[] scores=new int[10];)。此时数组初始值均为0,若要改变初始值,则可使用java.util.Arrays的fill()方法来设定新建数组的元素值。
- 数组复制:数组复制的基本做法是另行建立新数组。但可以使用arrays.copyOf()方法。System.arraycopy()的五个参数分别是来源数组、来源起始索引、目的数组、目的起始索引、复制长度。
字符串对象
- 字符串是由字符组成的文字符号。在java中,字符串是java.lang.String实例,用来打包字符数组。例如:
String name="justin"
//建立String实例
System.out.println(name)
//显示justin
System.out.println(name.length())
//显示长度为6
System.out.println(name.charAt(0))
//显示第一个字符j
System.out.println(name.toUpperCase())
//显示JUSTIN
封装
- 封装可以理解为把方法封在类中,用打时候可以直接拿,就好比你要上学,类就是书包而方法就是书,要用方法打时候直接从书包中拿书就行。
类语法细节
- public权限修饰
public是个公开类,可以在其他包的类中使用。可以在构造函数上声明public,这表示其他包中的类可以直接调用这个构造函数。可以在方法上声明public,这表示其他包中的方法可以直接调用这个方法。 - 关于构造函数
函数名与类名相同,不用定义返回值类型,不可以写return语句。 - 重载
(1)重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
(2)重载的特点:与返回值类型无关,只看参数列表。
(3)重载的好处:方便于阅读,优化了程序设计。
使用this
- 除了被声明为static的地方外,this关键字可以出现在类中任何地方。在构建函数参数与对象数据成员同名时,可用this加以区别。
static类成员
- 被声明为static的成员,不会让个别对象拥有,而是属于类,是将类名称作为名称空间。
- 由于static成员是属于类,而非个别对象,所以在static成员中使用this,会是一种语意上的错误。
- 静态变量必须在初始化之前进行赋值,否则会报错。静态方法通常都是被经常使用的方法,不需要每次都重新实例化,提高工作效率。
内部类
- 可以在类中再定义类。
- 内部类也可以使用public、protected或private声明。例如:
class Some{
private class Other{
}
}
代码调试中的问题和解决过程
-
问题:在编写编写定义类的时候出现如下情况
-
解决方案:在定义类中少加了一个}
-
问题:在输出数组的时候出现了找不到变量i
-
解决方案:在for后多打了;
代码托管
-
代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s"
- 运行 git log --pretty=format:"%h - %an, %cd : %s"
-
代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l
上周考试错题总结
- ~0b1011的十进制(-12):先取反,负数变反加一。
-
- CH03 判断: 0.123 == 1.23e-2 (X)
- ...
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:30小时
-
实际学习时间:17小时