第五周学习总结
第7章知识点总结
- 内部类与外嵌类
- 内部类的外嵌成员变量在内部类中仍有效,内部类中的方法也可以调用外嵌类的方法
- 内部类不可以声明类变量和类方法(static),外嵌类可以用内部类声明对象,作为外的成员。
- 内部类仅供他的外嵌类使用,其他类不可以使用某类的内部类声明对象。若内部类被修饰为static内部类,则其他类可以使用某类的此内部类来创建对象。static内部类不能操作外嵌类中的实例成员(非static)变量。
- 内部类的字节码文件名字格式为
外嵌类名$内部类名
- 匿名类
- 匿名类是一个子类去掉声明后的类体,是一个内部类。
- 匿名类不能声明对象,但可以创建对象。创建对象时,直接用父类的构造方法:
new 父类名(){ 匿名类的类体 };
- 接口名和一个类体创建一个匿名对象。
- 异常类
- try-catch 语句:将可能出现异常的操作放在try部分,将发生异常的部分放在catch部分
try{ 包含可能发生异常的语句 } catch(ExceptionSubClass1 e){ ... } catch(ExceptionSubClass2 e){ ... }
- try-catch?(final):在执行try~catch语句后执行finally子语句,finally不管怎样都会执行
try{} catch(ExceptionSubClass e){} finally
- 声明异常类:在产生异常的方法名后面加上要抛出(throws)的异常的列表
- 自定义异常类
- 断言
- 用于调试阶段,发现致命错误。
- 用assert声明断言语句:
``` - assert booleanExpression
assert booleanExpression
```第10章知识点总结
- 创建File对象的构造方法有3个:
- 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()
- 列出目录中的文件
- 文件的创建与删除
- 运行可执行文件
- 文件字节输入流
- 构造方法:创建指向文件的输出流
FileOutputStream(String name) FileOutputStream(File file)
- 使用输出流写字节:
- 向目的地写入单个字节:void write(int n)
- 向目的地写入一个字节数组:void write(byte b[])
- 从字节数组中偏移量off处取len个字节写到目的地:void write(byte b[],int off,int len)
- 关闭流:
- 调用close()方法
- 缓冲流
- BufferedReader(Reader in)
- BufferedWriter (Writer out)
- 读取文本行:readLine()
- 把字符串s写到文件中:write(String s,int off,int len)
- 向文件写入一个回行符:newLine()
- 随机流
- 构造方法:
- RandomAccessFile(String name,String mode)
- RandomAccessFile(File file,String mode)
- 相关方法:
- seek(long a)定位RandomAccessFile流的读写位置
- 数组流
- ByteArrayInputStream构造方法及常用方法
- ByteArrayInputStream(byte[] buf)
- ByteArrayInputStream(byte[] buf,int offset,int length)
- public int read()
- public int read(byte[] b,int off,int len)
- ByteArrayOutputStream()
- ByteArrayOutputStream(int size)
- public void write(int b)
- public void write(byte[] b,int off,int len)
- public byte[] toByteArray()
- 数据流
- DataInputStream创建的数据输入流指向一个由参数in指定的底层输入流
- DataOutputStream创建的数据输出流指向一个由参数out指定的底层输出流
- 使用Scanner解析文件
- 使用默认分隔标记解析文件
File file = new File("hello.java"); Scanner sc = new Scanner(file);
使用正则表达式作为分隔标记解析文件 : 创建Scanner对象,指向要解析的文件,并使用useDelimiter方法指定正则表达式作为分隔标记
File file = new File("hello.java"); canner sc = new Scanner(file); sc.useDelimiter(正则表达式);
- 对话框
- 构造方法
JFileChooser()
创建初始不可见的有模式的文件对话框。 - 文件对话框调用下述2个方法
- showSaveDialog(Component a);
- showOpenDialog(Component a);
- 文件锁
- 输入、输出流读写文件时可以使用文件锁
- RondomAccessFile创建流建立指向文件的流对象,该对象的读写属性必须是rw
- input流调用方法getChannel()获得一个链接到底层文件的FileChannel对象
信道调用tryLock()或lock()方法获得一个FileLock对象,这一过程也称作对文件加锁
上周测试总结:
解析:UML中,方法的属性用+表示public,用-表示private。在UML 里,一个类的属性能显示它的名字,类型,初始化值。
- 解析:用类声明的变量是对象;在类体中声明的对象是成员变量;全局变量:Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。参考java全局变量
- 解析:Integer类型的对象包含一个int类型的字段,Integer会自动拆箱为int,因此值相等