《Java程序设计》第六周学习总结
20175230 2018-2019-1 《Java程序设计》第六周学习总结
教材学习内容总结
内部类
- Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类
- 内部类和外嵌类之间的重要关系有
1.内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可调用到外嵌类中的方法
2.内部类的类体中不可以声明类变量和类方法,外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员
3.内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象
匿名类
- 和子类有关的匿名类 假设Bank 是类,那么下面代码就是用Bank的一个子类(匿名类)创建对象
new Bank() {
匿名的类体
}
- 和接口有关的匿名类 下列代码就是用实现可Computable接口的类(匿名类)创建对象
new Computable() {
实现接口的匿名类的类体
}
异常类
- try-catch语句
- 自定义异常类
断言
- 断言语句的语法格式,使用关键字assert声明一条断言语句,有两种形式
assert booleanExpression;
assert booleanExpression:messageException;
- 启用与关闭断言语句
File类
- 文件的属性
-
使用File类的方法获取文件本身信息 链接
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件
名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。
File类提供了如下三种形式构造方法。
File(File parent,String child):根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname):通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。如果给定字符串是空字符串,则结果是空的抽象路径名。
File(String parent,String child):根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
-
使用任意一个构造方法都可以创建一个 File 对象,然后调用其提供的方法对文件进行操作。在表 1 中列出了 File 类的常用方法及说明。
- 目录
- 创建目录 File对象调用方法public boolean mkdir ()创建目录
- 列出目录中文件
- 文件的创建与删除 当使用File类创建一个文件对象后,例如
File file=new File("c:\\myletter","letter.txt");
如果c:\myletter目录中没有名字为letter.txt文件,文件对象file调用方法public boolean createNewFile();
文件对象调用方法public boolean delete()
可以删除当前文件
- 文件字节输入流
- java.io包提供了大量的流类,Java把InputStream抽象类的子类创建的流对象称作字节输入流;OutputStream抽象类的子类创建的流对象称作字节输出流。Java把Reader抽象类的
子类创建的流对象称作字符输入流;Writer抽象类的子类创建的流对象称作字符输出流。
针对不同的源或目的地。java.io包为程序提供了相应的输入流或输出流。这些输入、输出流绝大部分都是InputStream、OutputStream、Reader或Writer的子类。
使用输入流通常包括4个基本步骤:
设定输入流的源
创建指向源的输入流
让输入流读取源中的数据
关闭输入流。
- java.io包提供了大量的流类,Java把InputStream抽象类的子类创建的流对象称作字节输入流;OutputStream抽象类的子类创建的流对象称作字节输出流。Java把Reader抽象类的
- 文件字节输出流
使用输出流通常包括4个基本步骤:
给出输出流的目的地
创建指向目的地的输出流
让输出流把数据写入到目的地
关闭输出流。 - 文件字符输入输出流
- 缓冲流
- 随机流
- 数组流
- 数据流
- 对象流
- 序列化与对象克隆使用Scanner解析文件
- 文件对话框
- 文件锁
教材学习中的问题和解决方法
- 问题一:example10_2中,
String fileName[]=dirFile.list(fileAccept)
此句是啥意思 - 问题一的解决方法:经过听视频 ,fileAccept是一个文件过滤器,也就是选取你想要的文件类型,
fileAccept.setExtendName("java")
是选取java类型的文件,假如java改为class,则为选取扩展名是class的文件
代码调试中的问题和解决方法
-
问题一:example10_1中,运行结果与书上不一致或者出错
-
问题一解决方法:经过查看运行结果中的绝对路径发现,代码中的绝对路径和实际路径不相符合,把代码中的绝对路径改为实际路径就好了
-
问题二:example10_3运行出错
-
问题二解决方法:
File file = new File("c:/windows","Notepad.exe");
路径和记事本程序不对,在虚拟机中没有记事本,可以改换虚拟机存在的程序 -
问题三:Example10_7运行出错
-
问题三解决方法:例七读取的txt文件要与Example10_7放一起,然后编译运行
-
问题四:example10_12运行出错
-
问题四解决方法:类名与对象的类名不一致,检查类名