黑马程序员技术交流社区
标题:
有个知识点把我弄糊涂了,请帮我解决一下!!!
[打印本页]
作者:
唐侠君
时间:
2013-12-13 15:50
标题:
有个知识点把我弄糊涂了,请帮我解决一下!!!
本帖最后由 唐侠君 于 2013-12-14 18:37 编辑
了解了匿名对象的使用(new 类名()),那么有匿名函数,匿名类吗,在哪里使用?请举一下简单的例子。百度里的回答很表面,看了也理解的不是很透彻。
作者:
路国强
时间:
2013-12-13 16:07
我也不懂,求解.......
作者:
胡永城
时间:
2013-12-13 16:12
本帖最后由 胡永城 于 2013-12-13 16:28 编辑
匿名对象也会创建一个对象实体,可以作为参数使用,函数需要函数名才可以调用,匿名类也需要类名才可以使用或者实例化,匿名函数和匿名类没有意义,所以不需要。当使用匿名类时,是把匿名类直接实例化来使用的,比如说一个函数的参数是接口类型的,在为其传递参数时,如果这个参数只使用一次(同匿名对象用法),可以new一个对象实现接口的方法。常用于监听器中。
代码示例如下:
import org.junit.Test;
public class DemoTest{
@Test
public void test(){
run(new InDemo() {//此处使用了匿名类,实现接口InDemo。
@Override
public void onClick() {//实现接口中的方法
System.out.println("点击事件");
}
});
}
public void run(InDemo in){//定义一个函数,参数为InDemo类型
in.onClick();//调用接口中的方法
}
}
interface InDemo{//接口
void onClick();
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2