20175320 2018-2019-2 《Java程序设计》第6周学习总结
教材学习内容总结
- 本周学习了教材的第七及第十章的内容。在这两章中介绍了接内部类与异常类以及输入、输出流,第七章着重讲了如何在内部类的基础上实现匿名类,如何用自定义的异常类来处理程序运行时发生的异常状况。第十章着重讲了文件的建立与操做以及如何利用各类输入输出流来对文件进行操做。
第七章总结:
- 内部类和外嵌类的成员变量在内部类中仍然有效,内部类中的方法也能够调用外嵌类中的方法;内部类的类体中不能够声明类变量和类方法。外嵌类的类体中能够用内部类声明对象;内部类仅供它的外嵌类使用。
- 内部类能够被修饰为static内部类,其余类可使用static内部类来建立对象,但static内部类不能操做外嵌类中的实例成员变量,非内部类不能够是static类。
- 匿名类便可在不声明对象名的状况下建立一个对象。
- Java使用throw关键字抛出一个Exception子类的实例表示异常发生,教材介绍了自带的异常类NumberFormatException和IOException。
- Java将可能出现的异常操做放在try部分,将发生异常后的处理放在catch部分,catch参数中的异常类都是Exception的某个子类。
- Java使用关键字assert声明一条断言语句,调试程序时可使用-ea启用断言语句。
第十章总结:
- 输入流的指向称为它的源,程序经过输入流读取源中的数据,输出流指向目的地,程序经过输出流把数据传送到目的地。
- File类的对象主要用来获取文件自己的一些信息以及建立目录,不涉及对文件的读写操做,若是File对象是一个目录,那么该对象可调用方法来列出目录下的文件和子目录以及目录下指定类型的文件。
- 方法createNewFile能够建立一个目录中没有的文件,delete方法能够删除当前文件
- 在使用字节输入输出流时必定要在try块部分建立输出流,在catch块部分检测并处理这个异常,调用close()方法能够保证操做系统把缓冲区的内容写到目的地。
- 在Writer流中,write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容被自动写入到目的地,若是关闭流,缓冲区的内容会马上被写入到目的地。流调用flush()方法能够马上冲洗当前缓冲区。
- 缓冲流的源和目的地必须是字符输入流和字符输出流,缓冲流是上层流,它们指向的字符流称为底层流。
- 随机流既可读也可写,但须要在非ASCII字符的文件中进行从新编码。
- 数组流的源和目的地是计算机内存。
- 数据流容许程序按着机器无关的风格读取Java的原始数据,须要底层流。
- 对象流可将一个对象写入到一个文件或读取一个对象到程序中,当使用对象流写入或读入对象时,要保证对象是序列化的。。
- 对象流将数组流做为底层流就能够将对象的序列化信息写入内存。
教材学习中的问题和解决过程
本周的学习内容并不算难度很高,在学习过程当中没有什么困难,可是相关类以及方法较多且较繁杂,须要时间去熟悉和理解。html
代码调试中的问题和解决过程
- 问题1:运行第十章的第三个程序时发生如图错误:

- 问题1解决方法:发现是在虚拟机中没有该目录,因而修改代码第五行的文件目录。
- 问题2:运行第十章第六个程序时发生如图错误:

- 问题2解决方法:发现是没在源程序的目录中建立"a.txt"文件。

上周考试错题总结
其余(感悟、思考等,可选)
Java是一门比较复杂的语言,它为了实现功能而产生了不少类和方法,如何熟悉并正确地使用这些类和方法应该是我从此努力的方向。教材的各个各个章节联系紧密,常常须要联系前面的章节,而前面章节不清楚的地方要看到后面才能明白,而此次项目的内容我也用到了教材中提供的代码,这提示咱们对教材要有至关高的熟练度,要多看教材。java
学习进度条
目标 |
5000行 |
30篇 |
400小时 |
|
第六周 |
1994/5253 |
3/10 |
25/132 |
|
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。git
参考:软件工程软件的估计为何这么难,软件工程 估计方法数组
参考资料