20175334 《Java程序设计》第六周学习总结
教材学习内容总结
第七章html
- 掌握内部类
- Java支持在一个类中定义另外一个类,这样的类被称做内部类,包含内部类的类称做内部类的外嵌类
- 内部类和外嵌类的重要关系:
- 内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也能够调用外嵌类中的方法
- 内部类的类体中不能够声明类变量和类方法,外嵌类的类体中能够用内部类声明对象,做为外嵌类的成员
- 内部类仅供它的外嵌类使用,其余类不能够用某个类的内部类声明对象
- Java编译器生成的内部类的字节码文件名称格式为
外嵌类名$内部类名
- 内部类能够被修饰为
static
内部类,但不能操做外嵌类中的实例成员变量
- 掌握匿名类
- 和子类有关的匿名类:
- 直接使用一个类的子类的类体建立一个子类对象
- 不可能用匿名类声明对象,但能够直接用匿名类建立一个对象
- 匿名类的特色:
- 匿名类能够继承父类的方法也能够重写父类的方法
- 使用匿名类时,必然是在某个类中直接用匿名类建立对象,所以匿名类必定是外部类
- 匿名类能够访问外嵌类中的成员变量和方法,匿名类的类体中不能够声明
static
成员变量和static
方法 - 因为匿名类是一个子类,但没有类名,因此在用匿名类建立对象时,要直接使用父类的构造方法
- 和接口有关的匿名类:
- 直接用接口名和一个类体建立一个匿名对象
- 若是某个方法的参数是接口类型,那能够使用接口名和类体组合建立一个类名对象传递给方法的参数,类体必须重写接口中的所有方法
- 和子类有关的匿名类:
- 理解异常类
- 异常对象能够调用
public String getMessage()
、public void printStackTrace()
、public String toString()
这些方法获得或输出有关异常的信息 try-catch
语句处理异常,将可能出现的异常操做放在try
部分,发生异常后的处理放在catch
部分- 一个方法体在声明时能够用关键字
throws
声明要产生的若干个异常,并用关键字throw
抛出该异常对象
- 异常对象能够调用
- 理解断言
- 断言语句通常用于程序不许备经过捕获异常来处理的错误
- 用关键字
assert
声明一条断言语句,有两种格式assert booleanExpression;
、assert booleanExpression:messageException;
- 用关键字
-ea
启用断言语句
第十章java
- 输入、输出流提供一条通道程序,能够使用其读取源中的数据,或把数据送到目的地;输入流的指向称做源,程序从指向源的输入流中读取源中的数据;输出流的指向称做目的地,程序经过向输出流中写入数据把信息传递到目的地
InputStream
的子类建立的对象称做字节数入流,字节数入流按字节读取源中的数据,只要不关闭流,每次调用读取方法时就顺序地读取源中的其他的内容,直到源中的末尾或流被关闭Reader
的子类建立的对象称做字符输入流,字符输入流按字符读取源中的数据,只要不关闭流,每次调用读取方法时就顺序地读取源中的其他内容,直到源中的末尾或流被关闭OutputStream
的子类建立的对象称做字节输出流,字节输出流按字节将数据写入输出流指向的目的地中,只要不关闭流,每次调用写入方法就顺序地向目的地写入内容,直到流被关闭Writer
的子类建立的对象称做字符输出流,字符输出流按字符将数据写入输出流指向的目的地中,只要不关闭流,每次调用写入方法就顺序地向目的地写入内容,直到流被关闭- 使用对象写入或读入对象时,要保证对象是序列化的,这是为了保证能把对象写入到文件,并能再把对象正确读回到程序中;使用对象流很容易获取一个序列化对象的克隆,咱们只需将该对象写入对象输出流指向的目的地,而后将该目的地做为一个对象输入流的源,那么该对象输入流从源中读回的对象必定是原对象的一个克隆
教材学习中的问题和解决过程
- 问题1:运行第十章例子2时运行结果为空白
- 问题1解决方案:从新翻过书后发现此例子是列出当前目录下所有
.java
文件的名字,由于我写代码.class
和.java
是分开的,因此结果为空白 - 问题2:运行第十章例子3时弹出
java.io.IOException: Cannot run program "/home/lxr/java2017/第十章/bin/c:/windows/Notepad.exe": error=2, 没有那个文件或目录
- 问题2解决方案:蓝墨云中有人问过此问题,由于Linux中没法读取
.exe
文件,因此须要在Windows系统中运行 - 问题3:运行第十章例子4时弹出
File read Errorjava.io.FileNotFoundException: Example10_4.java (没有那个文件或目录)
- 问题3解决方案:本身研究后发现须要把例子14的
.java
文件和.class
文件放在一块儿 - 问题4:运行第十章例子6时运行结果为空白
- 问题4解决方案:翻书后发现此例子是将文件
a.txt
内容尾加到文件b.txt
中 - 问题5:运行第十章例子7时弹出
java.io.FileNotFoundException: english.txt (没有那个文件或目录)
- 问题5解决方案:翻书后发现此例子须要建立一个
english.txt
文件 - 问题6:运行第十章例子7时弹出
java.io.FileNotFoundException: english.txt (没有那个文件或目录)
- 问题6解决方案:翻书后发现此例子须要建立一个
english.txt
文件 - 问题7:运行第十章例子15时弹出
java.io.FileNotFoundException: cost.txt (没有那个文件或目录)
- 问题7解决方案:从新翻过书后发现须要写一个
cost.txt
文件,以后能够正常运行 - 问题8:运行第十章例子16时弹出
java.io.FileNotFoundException: student.txt (没有那个文件或目录)
- 问题8解决方案:从新翻过书后发现须要写一个
student.txt
文件,以后能够正常运行 - 问题9:运行第十章例子20时会把答案一块儿显示
- 问题9解决方案:还没有解决
- 问题10:打代码时常常将
throw
和throws
打混 - 问题10解决方案:书上168页给出了两个关键字的具体意义以及用法
代码托管
学习心得
- 这两章内容十分多,新的类和方法也不少,与以前学习的内容产生了混淆,要在后面的时候总结复习
- 在打代码时候,不能只单纯的打代码,须要联系上下文以及提示,好比须要建立一个
.txt
文件等,不然运行时会发生错误 - 课下选作题有必定难度,经过这两道题也发现了本身的薄弱环节,还须要继续努力