Java匿名类的用法
在 Java 中调用某种方法时,如果该方法的参数是接口类型的,那么除了可以传入一个参数接口实现类的对象,还可以使用匿名内部类实现接口创建对象作为该方法的参数。
匿名内部类其实就是没有名称的内部类,在调用包含接口类型参数的方法时,为了简化代码,通常直接通过匿名内部类传入一个接口类型的参数,在匿名内部类中直接完成方法的实现。
匿名类的语法格式如下:
【实例】匿名内部类的应用。
匿名内部类其实就是没有名称的内部类,在调用包含接口类型参数的方法时,为了简化代码,通常直接通过匿名内部类传入一个接口类型的参数,在匿名内部类中直接完成方法的实现。
匿名类的语法格式如下:
new 父类名{ 匿名内部类的实现部分 }上述语法格式可以分解成两部分。其中,关键字 new 后面的内容是声明父接口的一个实现类,由于该类的声明在另一个类的内部,并且没有指定类名,因此称为匿名内部类。匿名内部类前面的关键字 new 用于创建该匿名内部类的对象,将该对象作为参数,传入目标方法中。
【实例】匿名内部类的应用。
// 定义一个接口 interface MathInterface { void result(); } public class Demo { public static void main(String[] args) { int n = 66; // nValue()方法,使用匿名内部类实现接口 nValue(new MathInterface() { // 实现result()方法 public void result() { // 局部内部类、匿名内部类可以访问非final的局部变量 System.out.println(n + "是n的值"); } }); } // 定义静态方法nValue(),接收接口类型的参数 public static void nValue(MathInterface m) { // 调用传入对象m的result()方法 m.result(); } }运行结果为:
66是n的值