- [code]/*
- 这个是匿名内部类
- 匿名内部类的格式: new 父类或者接口(){定义子类的内容}
- 其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。
- 匿名内部类要与本类外部的一个类有继承关系或者实现一个接口。这样就可以用父类或者接口来实例化。
- 比如本程序中,我把不必要的内容去掉就变成了:
- String[]arr=dir.list(new FilenameFilter()
- {
- public boolean accept(File dir,String name)
- {
-
- }
- });
- 还可以再进一步简化:dir.list(new FilenameFilter(){});注意这里的“;”不能掉!!
- 实际上就是list方法中传入了一个实例化的FilenameFilter接口,这个接口带有内容.
- 对于该例子我们如果不使用简写方式传入接口,则需要如下书写:
- 首先要覆盖接口FilenameFilter中的accept()方法即:
- interface FilenameFilter()
- {
- public boolean accept(File dir,String name)
- {
-
- }
- }
- 然后再在要调用该接口的类中实例化并调用。
- FilenameFilter filter = new FilenameFilter();
- dir.list(filter);
- 这样做很麻烦的。
- 所以匿名内部内可以简化书写
- */
复制代码 [/code] |