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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 晓风妮子 中级黑马   /  2013-4-21 16:44  /  1634 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名内部类在什么情况下使用?使用匿名内部类有什么好处呢?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

正序浏览
Akm 黑马帝 2013-4-22 09:11:58
7#
本帖最后由 Akm 于 2013-4-22 09:12 编辑

当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较快捷。
回复 使用道具 举报
本帖最后由 gerenvip 于 2013-4-22 08:46 编辑

给你举例说明一下吧。
  1. public static void listDemo2()
  2.         {
  3.                 File dir = new File("d:\\java\\day20");
  4.                 <font color="red">String[] arr = dir.list(new FilenameFilter(){
  5.                 public boolean accept(File dir,String name)
  6.                 {
  7.                         //System.out.println("dir:"+dir+" name:"+name);
  8.                         return name.endsWith(".java");
  9.                 }
  10.                 });//</font>匿名内部类
  11.          System.out.println("len:"+arr.length);
  12.                 for(String name : arr)
  13.                 {
  14.                         System.out.println(name);
  15.                 }
  16.         }
复制代码
上面这个代码是毕老师视频中的演示示例。实现的功能是查找指定目录中所有java文件。需要使用
list(FilenameFilter filter)方法,但是方法需要传递一个FilenameFilter接口的实例。
其实不想使用匿名内部类的话,完全可以单独定义一个类实现接口FilenameFilter,然后new一个对象,传递到
list(FilenameFilter filter)方法中,但是这个接口中仅有一个方法accept。这时如果使用匿名内部类就显得十分轻便,如楼上所说的,给懒人使用的,哈哈,其实在适当的时候使用匿名内部类给人清晰简洁的感觉。
希望能帮到你










评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报

如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
匿名内部类
就是内部类的简写格式,只能调用一次。
内部类必须继承一个类或实现接口。就是匿名子类对象。内部函数最好不超过3个。
new 父类或接口()
{
        覆写函数或实现函数

}.调用函数();

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
内部类:
  就是在一个类里定义另外一个类,就叫内部类;
  内部类可以直接访问外部类中的成员包括私有;
外部类访问内部类需要建立内部类对象;
使用匿名内部类是比较合适的:
     只用到类的一个实例。   
    类在定义后马上用到。   
    类非常小  
    给类命名并不会导致你的代码更容易被理解。
匿名内部类的好处,我感觉就是懒人专用,呵呵

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
匿名内部类:
                1,匿名内部类其实就是内部类的简写格式。
                2,定义匿名内部类的前提:
              内部类必须是继承一个类或者实现接口。
                3,匿名内部类的格式:  new 父类或者接口(){定义子类的内容}
                4,其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。 可以理解为带内
                       容的对象。
                5,匿名内部类中定义的方法最好不要超过3个。  

好处就是简化书写

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

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