标题: 匿名内部类,不好理解 [打印本页] 作者: 王松朝 时间: 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关键字调用相应的内容)。