《JAVA程序设计》第六周学习总结
一、目录:
- 第七章知识总结
- 第十章知识总结
- 上周错题总结
- 代码托管
- 感想
二、 第七章知识总结:内部类与异常类
- 内部类:在一个类中定义另一个类
特点:外嵌类的成员在内部类仍然有效,内部类也可调用外嵌类的方法,内部类的类体不能声明类变量及类方法,非内部类不能是static类
- static内部类不能操作外嵌类中的实例成员变量。
- 匿名类:一个子类去掉声明后类体 ◦如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法。
- 匿名类创建对象:
new Bank() {
匿名类的类体
}
- 异常类: 程序运行时会出现一些错误。
try {
包含可能发生异常的语句
}
catch(ExceptionSubClass e) {
...
}
catch(ExceptionSubClass e) {
...
}
- 声明异常类:在产生异常的方法名后面加上要抛出(throws)的异常的列表
- 断言:用assert声明断言语句:
- assert booleanExpression
- assert booleanExpression
- 启用断言语句:
java -ea mainClass
- 当使用Java解释器直接运行应用程序时,默认地关闭断言语句
三、第十章知识总结:输入、输出流
- File类:主要用来获取文件本身的一些信息,不涉及对文件的读写操作。创建它的构造方法有三种:
File(String filename);
File(String directoryPath,String filename);
File(File f, String filename);
- 文件属性:
获取文件的名字:public String getName()
判断文件是否是可读的:public boolean canRead()
判断文件是否可被写入:public boolean canWrite()
判断文件是否存在:public boolean exits()
获取文件的长度(单位是字节):public long length()
获取文件的绝对路径:public String getAbsolutePath()
获取文件的父目录:public String getParent()
判断文件是否是一个普通文件,而不是目录:public boolean isFile()
判断文件是否是一个目录:public boolean isDirectroy()
判断文件是否是隐藏文件:public boolean isHidden()
获取文件最后修改的时间:public long lastModified()
- 创建目录:
public boolean mkdir();
- 创建文件:
public boolean createNewFile();
- 删除当前文件:
file.delete();
- 使用
Runtime类
执行可执行文件 - 使用输入流通常包括4个基本步骤:
(1)设定输入流的源
(2)创建指向源的输入流
(3)让输入流读取源中的数据
(4)关闭输入流。 - 文件字节输入流:
- 使用方法:
创建目录:public boolean mkdir()
列出目录中的文件
文件的创建与删除
运行可执行文件
- 构造方法:创建指向文件的输出流
FileOutputStream(String name)
FileOutputStream(File file)
- 调用
clos()
方法关闭流
- 缓冲流:
BufferedReader
和BufferedWriter
类创建的对象- 读取文本行:
readLine()
- 把字符串s写到文件中:
write(String s,int off,int len)
- 向文件写入一个回行符:
newLine()
- 读取文本行:
BufferedReader(Reader in);
BufferedWriter (Writer out);
- 随机流:
RandomAccessFile
类创建的流
RandomAccessFile(String name,String mode)
- 数据流:
DataInputStream
创建的数据输入流指向一个由参数in指定的底层输入流DataOutputStream
创建的数据输出流指向一个由参数out指定的底层输出流
- 对话框:
- 构造方法
JFileChooser()
创建初始不可见的有模式的文件对话框。 - 文件对话框调:
- 构造方法
showSaveDialog(Component a);
showOpenDialog(Component a);
- 使用`Scanner`解析文件,文件对话框,带进度条的输入法,文件锁。
**四、上周错题总结:**
- 错题一:
![](https://img2018.cnblogs.com/blog/1265430/201904/1265430-20190407213102560-277112323.png)
- 解析:通过关键字extends声明一个接口是另一个接口的子接口。
- 错题二:
![](https://img2018.cnblogs.com/blog/1265430/201904/1265430-20190407213111549-1510850472.png)
- 解析:接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。
**五、代码托管:**
https://gitee.com/sgm5/text1
**六、感想:**
在这周的学习中,敲的代码比较多的,但是能够理解并掌握的有限,课后还需多看,进一步体会教材程序的编译运行等操作。这一周做了JAVA实验一,感触颇多,对之前学习的知识有了一定的巩固,也加深了对一些知识的印象。
**七、学习进度条**
| | 代码行数(新增/累积) |博客量(新增/累积) | 学习时间(新增/累积)|重要成长|
|---------| ------ | ------ | ------|----------|
|目标| 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| |
|第五周|800/1300| 2/9| 30/90| |
|第六周|1000/1300| 3/10| 30/90| |