20175202 2018-2019-2 《Java程序设计》第六周学习总结
教材知识点总结
1.内部类:
Java支持在一个类中定义另一个类,称作内部类,包含内部类的类叫做外嵌类。
内部类的外嵌类的成员变量在内部类中仍然有效,内部类也可以调用其方法。
内部类的类体中不能声明变量和方法。
内部类仅供其外嵌类使用。
2.匿名类:
匿名类可以继承和重写父类的方法,且匿名类一定是内部类。
匿名类可以访问外嵌类的变量和方法,匿名类的类体不能声明static变量和方法。
创建对象时,必须使用父类的构造方法。
Java允许直接使用接口名和一个了哦提创建一个匿名对象。
3.异常类:
Java允许定义方法时声明parseInt()方法调用过程中可能出现的异常,即允许方法调用过程中抛出异常对象,终止当前方法。
Java使用try-catch语句来处理异常,也可以扩展Exception类定义自己的异常类。
4.断言:
一般用于程序不准备通过捕获异常来处理的错误。
5.File类:
File类的对象来或许文件本身的信息,不涉及文件的读写操作。
创建File对象的构造方法有三个,filename时文件名字,directoryPath是文件的路径,dir为一个目录。
我们经常使用File类的一些方法来获取文件的本身信息(详见课本P282),例如:public String getName()用来获取文件的名字。
File对象用方法public boolean mkdir()来创建目录,调用方法public boolean delete()来删除当前文件。
6.输入流:
当对文件读取需求简单时,可以使用FileInputStream类(文件字节输入流),该类时InputStream类的子类(以字节为单位读取文件),该类的实例方法都是从InputStream类继承来的。
7.输出流:
当对文件写入需求简单时,可以使用FileOutputStream类(文件字节输出流),该类是OutputStream类的子类(以字节为单位写入内容),该类的实例方法都是从OutputStream类继承来的。
8.缓冲流、随机流、数组流、对象流:(P290-300)。
9.序列化与对象克隆:
若想“复制”一个对象,复制品的变化不会使其本身变化,反之也是。这样的复制品称为原对象的克隆对象。
教材学习中的问题和解决过程
问题1:不理解为什么要设计匿名类,使用匿名类的意义到底是什么呢。
解决方案:如果一个方法的参数类型是A类,用户希望向方法传递A的子类对象,但系统没有提供符合要求的子类,那么用户在编写代码时就可以考虑使用匿名类。
问题2:第十章的许多代码出现编译错误。
解决方案:自己习惯性的喜欢把所以类放在一起编写再编译运行,然而忘记将主类代码最前面的inport java awt.*等语句删除,造成编译错误,删除后即可正确通过编译并实现功能。
问题3:输入流那里看的不太明白,到数组流的时候看不懂书上的解释和意思。
解决方案:字节数组流对象分为输入流和输出流。分别是:ByteArrayInputStream和ByteArrayOutputStream。
字节数组输入流在内存创建一个字节数组缓冲区,从输入流读取的数据保存在该字节数组缓冲区中。创建字节数组输入流对象有以下方式:
//方法 1
ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a);
//方法 2
ByteArrayInputStream bArray = new ByteArrayInputStream(byte []a, int off, int len)
代码托管
心得体会
Java课程在这周的任务量很重,加上本周有清明节假期。因此本周自己在周二就开始了相关内容的学习,这对做事拖拉的自己是一个很大的进步。在第七章的内容相对比较好理解,目前已经初步掌握,但第十章的输入输出流,尤其是数组流、对象流等真的非常难理解,自己现在还是一知半解。包括后面的几个小节,自己目前只是运行了一下代码,蜻蜓点水势的掠过去了。在之后的清明节假期,自己还将认真进行Java第十章内容的学习!
上周错题总结
上周的测试中无错题。