黑马程序员技术交流社区

标题: 匿名内部类,不好理解 [打印本页]

作者: 王松朝    时间: 2011-7-26 17:49
标题: 匿名内部类,不好理解
下面是匿名内部类
public class A{
public B b(){
return new B(){
private int i=1;
public int value(){return i;}
};
}

public static void main(String[] args){
A a=new A();
B bb=a.b();
}
} 
看不太懂呀,匿名内部类有什么用
作者: 黑马赵丹枫    时间: 2011-7-26 18:17
如果内部类的代码比较短,匿名内部类可以节省一些编写代码的时间,比如在某一方法中的参数需要某一接口或抽象类时,那么就可以使用匿名内部类。
[ 本帖最后由 黑马赵丹枫 于 2011-07-26  18:30 编辑 ]
作者: 匿名    时间: 2011-7-26 19:32
标题: 回复 楼主 的帖子
楼主你那个代码不是匿名内部类,那只是一个普通的成员内部类。
内部类有成员内部类,局部内部类,匿名内部类和静态嵌套类。
成员内部类:它相当于外部类的一个成员变量或方法,可用修饰符为 final、abstract、public、private、protected、strictfp和static
局部内部类(方法内部类):在外部类的某个方法内定义的类,与成员内部类不同,它相当于外部类的一个局部变量,修饰符只能用 final 和 abstract 。只能在定义该内部类的方法内实例化,不能在次方法外对其实例化
匿名内部类:没有名字的内部类[code]01.interface Face {  
02.   public void drive();  
03.}  
04.class Temp {  
05.   public static void main(String[] args) {  
06.      Face face = new Face() {  
07.         public void drive() {  
08.            System.out.println();  
09.         }  
10.      };  
11.      face.drive();  
12.   }  
13.}[/code]这才是匿名内部类。楼主可以参考我的博客[url]http://blog.csdn.net/driverking/article/details/6553877[/url]
作者: 王松朝    时间: 2011-7-26 20:16
探讨一下,上面的代码出自《java编程思想第四版》第十章第6节, 可版主也确实讲的很清晰,
求指点
作者: 匿名    时间: 2011-7-26 20:58
标题: 回复 板凳 的帖子
呵呵,楼上的童鞋的确很认真!一眼就看出来了那是Think in Java的例子,看好你
作者: 匿名    时间: 2011-7-26 21:09
匿名内部类,当你创建一个类的对象不需要他的名字时,可以用匿名内容类,匿名内部类代码简洁清楚。
匿名内部类,没有名字,所有没有构造函数(但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数,并在实现的过程中使用super关键字调用相应的内容)。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2