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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Act 中级黑马   /  2015-4-8 21:40  /  523 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名内部类什么情况下使用?匿名对象又是什么时候应该用呢?

4 个回复

倒序浏览
建议你看看毕老师的视频哦,或者传至官网上的基础班视频
回复 使用道具 举报
内部类分为成员内部和局部内部类。而匿名内部类往往是发生在局部内部类这种情况。就是要实现一个接口或者继承一个抽象类,但是没有名字,又要重写里面所有的抽象方法,这种场景会用到匿名内部类。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
匿名对象就是 方法只调用一次的时候,有的时候程序员发懒就懒得创建引用,直接使用对象调用方法;另一种使用场景是 类作为参数的时候。这个时候需要匿名对象。
回复 使用道具 举报
本帖最后由 君嘘 于 2015-4-8 22:28 编辑

匿名内部类,需要用到继承了父类或者实现了接口的子类对象的时候。
我就随便写下 没注意修饰符。
interface Person{
       void eat();
}
比如有个接口,我想创建一个实现此接口的子类对象,用匿名内部类是这么干,这时我们就得到了一个实现了Person接口的对象 p
Person p= new Person(){
      void eat(){}            
};   
正常方法是这样:
先弄一个类实现接口,然后再new一个对象。


匿名对象,需要将对象作为参数传递的时候。
比如有一个方法是这样的。
void  show(Person p)

这方法需要一个对象作为参数。可以这么做
show(new Person());这就是将匿名对象作为参数传递。

正常来说应该是这样
Person p =new Person();
show(p);

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