A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王松朝 金牌黑马   /  2011-7-26 17:49  /  3136 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是匿名内部类
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();
}
} 
看不太懂呀,匿名内部类有什么用

评分

参与人数 1技术分 +2 收起 理由
admin + 2 不懂就问的好童鞋!

查看全部评分

5 个回复

倒序浏览
如果内部类的代码比较短,匿名内部类可以节省一些编写代码的时间,比如在某一方法中的参数需要某一接口或抽象类时,那么就可以使用匿名内部类。
[ 本帖最后由 黑马赵丹枫 于 2011-07-26  18:30 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答到边了的都有分!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-26 19:32:02
藤椅

回复 楼主 的帖子

楼主你那个代码不是匿名内部类,那只是一个普通的成员内部类。
内部类有成员内部类,局部内部类,匿名内部类和静态嵌套类。
成员内部类:它相当于外部类的一个成员变量或方法,可用修饰符为 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]

评分

参与人数 1技术分 +2 收起 理由
admin + 2 不错!

查看全部评分

回复 使用道具 举报
探讨一下,上面的代码出自《java编程思想第四版》第十章第6节, 可版主也确实讲的很清晰,
求指点
回复 使用道具 举报
黑马网友  发表于 2011-7-26 20:58:23
报纸

回复 板凳 的帖子

呵呵,楼上的童鞋的确很认真!一眼就看出来了那是Think in Java的例子,看好你
回复 使用道具 举报
黑马网友  发表于 2011-7-26 21:09:44
地板
匿名内部类,当你创建一个类的对象不需要他的名字时,可以用匿名内容类,匿名内部类代码简洁清楚。
匿名内部类,没有名字,所有没有构造函数(但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数,并在实现的过程中使用super关键字调用相应的内容)。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 新手报到!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马