赞
踩
什么是匿名对象?
匿名内部类跟匿名对象是一个道理:
如何使用匿名内部类:
【示例】:
匿名内部类特点:
示例1:
interface Work { void doWork(); } public class AnonymousOuterClass { private String name = "AnonymousOuterClass"; private static int age = 21; public void say() { System.out.println("Say..."); } public static void go() { System.out.println("Go..."); } public void test() { final int i = 90; Work w = new Work() { @Override public void doWork() { // 打印外部类的属性 System.out.println(AnonymousOuterClass.this.name); System.out.println(AnonymousOuterClass.age); // 调用外部类的方法实例方法 AnonymousOuterClass.this.say(); // 调用外部类的方法静态方法 AnonymousOuterClass.go(); // 打印方法里面定义的常量 System.out.println(i); } }; w.doWork(); } } class Test { public static void main(String[] args) { new AnonymousOuterClass().test(); } }
示例2:
public class AnonymousOuterClass { public void say() { System.out.println("Say..."); } public void test() { new AnonymousOuterClass() { public void say() { System.out.println("Say No..."); } }.say(); } } class Test { public static void main(String[] args) { new AnonymousOuterClass().test(); } }
我们可以试一下不用匿名内部类和用匿名内部类实现一个接口中的方法的区别
1.【不用匿名内部类】:
2.【用匿名内部类】:
interface Test1 {
public void method();
}
public class Test {
public static void main(String[] args) {
//如果我们需要使用接口中的方法,我们只需要走一步,就是使用匿名内部类,直接将其 类的对象创建出来。
new Test1() {
public void method() {
System.out.println("实现了Test接口的方法");
}
}.method();
}
}
小结:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。