第六周java学习总结
内部类
java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类。
1、内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。
2、内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
3、内部类仅供它的外嵌类使用,其他类不可以用某个类的内部变量声明对象。
例子Example7_1运行结果
匿名类
特点:
1、匿名类可以继承父类的方法也可以重写父类的方法。
2、使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。
3、匿名类可以访问外嵌类中的成员变量和成员方法,匿名类的类体中不可以声明static成员变量和static方法。
4、由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象时,要直接使用父类的构造方法。
例子Example7_2运行结果
和接口有关的匿名类
匿名类的类体必须重写接口中的全部方法。
例子Example7_3程序运行结果
异常类
try-catch语句
使用try-catch语句处理异常。一旦try部分抛出异常对象,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么try部分将立刻结束执行,转向执行相应的catch部分。
例子Example7_4程序运行结果
自定义异常类
可以用Exception类定义自己的异常类,使用throws关键字声明要产生的若干个异常,并在该方法的方法体中给出产生异常的操作。catch的作用就是捕获throw关键字抛出的异常对象。
例子Example7_5程序运行结果
断言
断言语句语法格式
assert booleanExpression;
当booleanExoression为true,程序继续执行,否则程序停止执行。
assert booleanExpression:messageException;
当booleanExoression为true,程序继续执行。否则程序停止执行,输出messageException的值
启用与关闭断言语句
调试时启用命令
java -ea mainClass
运行时默认关闭。
例子Example7_6程序运行结果
应用举例
finally语句
无论try部分是否发生过异常,finally语句都会执行。
1、如果在try-catch语句中执行了return语句,那么finally语句仍然会被执行。
2、try-catch语句执行了程序退出代码,即执行了System.exit(0);则不执行finally子语句
例子Example7_7程序运行结果
File类
构造方法
File(String filename);
Flie(String directoryPath,String filename);
Flie(Flie dir,String filename);
文件的属性
public String getName()
public boolean canRead()
public boolean canWrite()
public boolean exists()判断文件是否存在。
public long length()
public String getParent()
public String isFile()判断文件是否是一个普通文件,而不是目录。
public boolean isDirectory()
public boolean isHidden()
public long lastModified()获取文件最后修改的时间。
例子Example10_1运行结果
目录
创建目录
调用方法
public boolean mkdir()
列出目录中的文件
返回目录下的全部文件
public String[] list()
返回目录下的全部文件
public File [] listFiles()
返回目录下的指定类型的所有文件
public String list(FilenameFilter obj)
返回目录下的指定类型的所有文件
public File [] listFiles(FilenameFilter obj)
文件的创建与删除
方法
public boolean createNewFile();
创建文件
方法
public boolean delete();
删除文件
运行可执行文件
例子Example10_3程序运行结果
文件字节输入流
四个基本步骤
(1)设定输入流的源
(2)创建指向源的输入流
(3)让输入流读取源中的数据
(4)关闭输入流
构造方法
FileInputStream(String name);
FlieInputStream(File file);
使用输入流读取字节
int read()读取单个字节的数据
int read(byte b[])读取b.length个字节到字节数组b中
int read(byte b[],int off,int len)读取len个字节到数组b中
关闭流
close()
文件字节输出流
四个基本步骤
(1)给出输出流的目的地
(2)创建指向目的地的输出流
(3)让输出流把数据写到目的地
(4)关闭输出流
构造方法
FileOutputStream(String name);
FileOutputStream(File file);
FileOutputStream(String name,boolean append);
FileOutputStream(File file,boolean append);append为true,则从末尾写入,否则刷新文件。
使用输出流写字节
void write(in)
void write(byte b[])
void write(byte b[],int off,in len)给定字节数组中起始于偏移量为off处取len个字节写到目的地。
void close()
文件字符输入流输入流
FileReader(String filename);
FileReader(File filename);
FileWriter(String filename);
FileWriter(File filename);
FileWriter(String filename,boolean append);
FileWriter(File filename,boolean append);
缓冲流
BufferedReader(Reader in);
BufferedWriter(Writer out);
例子Example10_5运行结果
随机流
构造方法
RandomAccessFile(String name,String mode)
RandomAccessFile(File file,String mode)
数组流
字节数组流
构造方法
输入流
ByteArrayInputStream(byte[] buf);
ByteArrayInputStream(byte[] buf.int offset,int length);
输出流
ByteArrayOutputStream();
ByteArrayOutputStream(int size);
字符数组流
CharArrayReader类和CharArrayWriter类
例子Example10_10运行结果
数据流
DataInputStream(InputStream in)
DataInputStream(OutputStream out)
对象流
构造方法
ObjectInputStream(InputStream in)
ObjectOutputStream(OutputStream out)
文件对话框
showSaveDialog(Component a);提供保存文件的界面
showOpenDialog(Component a);提供打开文件的界面
带进度条的输出流
例子Example10_19运行结果
脚本运行结果
可能是在windows中运行脚本的原因,博客每周都写了但是脚本统计是没有统计上