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的原始数据,需要底层流。
- 对象流可将一个对象写入到一个文件或读取一个对象到程序中,当使用对象流写入或读入对象时,要保证对象是序列化的。。
- 对象流将数组流作为底层流就可以将对象的序列化信息写入内存。
教材学习中的问题和解决过程
本周的学习内容并不算难度很高,在学习过程中没有什么困难,但是相关类以及方法较多且较繁杂,需要时间去熟悉和理解。
代码调试中的问题和解决过程
- 问题1:运行第十章的第三个程序时发生如图错误:
- 问题1解决方法:发现是在虚拟机中没有该目录,于是修改代码第五行的文件目录。
- 问题2:运行第十章第六个程序时发生如图错误:
- 问题2解决方法:发现是没在源程序的目录中创建"a.txt"文件。
代码托管
上周考试错题总结
- 上周测试中无错题。
其他(感悟、思考等,可选)
Java是一门比较复杂的语言,它为了实现功能而产生了很多类和方法,如何熟悉并正确地使用这些类和方法应该是我今后努力的方向。教材的各个各个章节联系紧密,经常需要联系前面的章节,而前面章节不清楚的地方要看到后面才能明白,而这次项目的内容我也用到了教材中提供的代码,这提示我们对教材要有相当高的熟练度,要多看教材。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第六周 | 1994/5253 | 3/10 | 25/132 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:20小时
- 实际学习时间:20小时
- 改进情况:多看看现代软件工程 课件 软件工程师能力自我评价表