- forearch简称为增强for循环,目的是为了简化for循环
1 2
   | for(数据类型 每次循环的名称 : 循环对象){       }
  | 
 
- 匿名类
之前一直以为一个方法method()只能传值进去,今天才发现原来对象也可以当做参数传进去。
之前一直以为接口和对象都不能直接实例化为对象,都需要继承后才能实例化,今天才发现原来也可以,只要做成匿名类就好了。
so,new bird。天真
为啥接口可以直接实例化为对象,首先想想之前是咋做的。需要一个类去继承它,继承之后可以实例化,怎么继承?必须实现父类的方法。所以本质是实现方法,这也是为什么匿名类可以实例化的前提,那么实例这个接口就必须把方法实现。
匿名类其实就是相当于实现接口或者实现抽象类的一个具体类
 
下面就是一个文件过滤的功能:找出家目录里以rc结尾的所有文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   | import java.io.File; import java.io.FileFilter;
  public class FilterFile{     public static void main(String[] args) {         File file=new File("/home/narcissus");     //File类实例化对象         //这个File[] 是个什么鬼?数组?可以这么写?         File[] grade=file.listFiles(new FileFilter() {    //FileFilter接口的构造函数的匿名实例化             public boolean accept(File file) {    //方法的实现,自动补全                 if(file.getName().endsWith("rc")){                     return true;                 }                 return false;             }         });
          for(File f:grade) {    //增强for循环,之前一直不会写 :)             System.out.println(f.getName());         }     } }
   |