内部类也可以用static来修饰。这样的内部类可以用来在其他类中创建对象,但是这样的内部类不能够操作外嵌类的实例变量。
①匿名类可以继承、重写父类的方法;
②匿名类是内部类,所以匿名类的使用要遵守内部类的规则;
③匿名类没有类名,所以在创建时直接使用父类的构造方法。
可以用接口名和类体来创建一个匿名的对象:new [接口名]() {匿名类类体};这个类体也叫做匿名类。此时,类体必须重写接口中的所有方法。
try-catch语句:用来处理出现的异常操作。
throw关键字:当运行出现异常时,能够使用throw关键字来抛出异常的对象;而throws关键字用来声明要产生的若干个异常。
①assert booleanExpression,当程序运行到这一句时,如果被修饰的表达式为true,程序接着运行,否则程序停止运行。
②assert booleanExpression:messageException,当程序运行到这一句时,如果被修饰的表达式为true,程序接着运行,否则程序停止运行并输出“:”后的值。
输入、输出流的作用是读入外部数据、向外部输出数据。所有输入流都是InputStream或Reader的子类,所有的输出流都是OutputStream或Writer的子类。
File类的对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。创建一个File对象的构造方法:
①File(String filename);
②File(String directoryPath,String filename);
③File(File dir,String filename)。
文件的属性:
使用File对象调用方法public boolean mkdir()来创建一个目录,创建成功返回true,失败或者目录已经存在则返回false;
当File对象是目录时,可以利用public String [] list(FilenameFilter obj)来返回目录下指定类型的所有文件,public File [] listFiles()来用File对象形式返回目录下的指定类型的文件。
当使用File类创建一个文件对象后,若在指定的目录下没有指定名字的文件,则可以使用public boolean createNewFile()来在这个目录中创建一个该名的文件。对象调用方法public boolean delete()可以用来删除当前文件。
要执行一个本地机器上的可执行文件时,可以使用Runtime类:Runtime [对象名]=Runtime.getRuntime();,然后借助这个对象调用exec([命令字符串]来进行打开可执行文件或者执行操作。
②创建指向源的输入流;
③让输入流读取源中的数据;
④关闭输入流。
①设定输出流的目的地;
②创建指向目的地的输出流;
③让输出流把数据写入到目的地;
④关闭流。
FileOutputStream(String name,boolean append);和FileOutputStream(File file,boolean append)来判断是否对文件进行刷新:append取true不刷新,取false刷新。
输出流是通往目的地的“通道”。文件字节流可以调用write方法顺序地写入文件,只要不关闭流,每次调用就顺序写入,直到流被关闭。
①void write(int n)可以用来向目的地写入单个字节;
②void write(byte b[])可以用来向目的地写入一个字节数组;
③void write(byte b[],int off , int len);可以用来向目的地写入数组b从off开始共len长度的字节;void close()关闭输入流,同时可以保证冲洗掉缓冲区的内容。
①使用RandomAccessFile流创建流对象(读写属性为rw);
②input流调用方法getChannel()获取一个连接到底层文件的FileChannel对象;
③信道借用tryLock或lock方法获得一个FileLock(文件锁)对象。
①int read()可以从源中读取单个字节的数据,返回0~255的一个整数,未读出字节返回-1。
②int read(byte b[])可以从源中读取b.length个字节到字节数组b中,返回读取的字节数目。到达文件末尾返回-1。
③int read(byte b[],int off,int len)可以用来读取源文件中从off开始共len个字节到数组b中,返回读取的字节数目。到达文件末尾返回-1。
可以调用输入流的方法close();来关闭流。程序结束时会自动关闭所有打开的流,但是要学会显式地关闭打开的流。
错题1
原因:概念不清
理解情况:new filenamefilter()是创建一个继承自filenamefilter的匿名类对象,通过new表达式返回的引用自动向上转型为对filenamefilter的引用。因为匿名类不存在构造方法,需要显式调用父类的构造方法,并重写父类的方法。错题2
原因:概念不清
理解情况:内部类的外嵌类的成员变量在内部类中仍然有效;内部类中的方法也可以调用外嵌类中的方法;匿名类一定是内部类;匿名内部类可以使用外部类的成员变量的,即使是private的也可以;当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。
本周第七章第十章的学习内容是我在Java学习中遇到过最多最复杂也是最困难的,本周共有四份博客需要提交:学习总结,实验一,类定义还有结对项目,任务可以说是相当繁重,即使是清明节三天假期待在学校学习时间也非常紧。但是当我调试运行第十章代码时知道我们已经开始慢慢学习到开发操作界面还是很开心的,上一次学习设计程序的操作界面还是在高中时信息技术课的Visual Basic,以前都是运行命令行程序,现在开始有开发软件的感觉,很有成就感,相信自己一定会在接下来的学习中更加认真努力,能够在未来用这学期所学知识开发一个令自己满意的简单实用的软件。
代码行数 | 博客量 | 学习时间 | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 320小时 | |
第一周 | 51/100 | 1/1 | 12/20 | 基本掌握了Linux的简单指令 |
第二周 | 173/200 | 1/1 | 18/20 | 学习了Java重要基本语法 |
第三周 | 672/800 | 1/1 | 18/20 | 学习了包含多个类的Java程序及类的包机制 |
第四周 | 436/600 | 1/1 | 12/20 | 学习程序父类和子类的继承规则 |
第五周 | 573/600 | 1/1 | 10/20 | 学习通过类来实现接口和接口回调 |
第六周 | 1182/1200 | 1/1 | 20/20 | 学习内部类、匿名类、异常类和File类 |
计划学习时间:20小时
实际学习时间:20小时
原文:https://www.cnblogs.com/SANFENs/p/10664977.html