黑马程序员技术交流社区

标题: 匿名内部类跟匿名对象好模糊啊 [打印本页]

作者: Act    时间: 2015-4-8 21:40
标题: 匿名内部类跟匿名对象好模糊啊
匿名内部类什么情况下使用?匿名对象又是什么时候应该用呢?
作者: 刘潘敏    时间: 2015-4-8 21:51
建议你看看毕老师的视频哦,或者传至官网上的基础班视频
作者: 齐小灰同学    时间: 2015-4-8 22:08
内部类分为成员内部和局部内部类。而匿名内部类往往是发生在局部内部类这种情况。就是要实现一个接口或者继承一个抽象类,但是没有名字,又要重写里面所有的抽象方法,这种场景会用到匿名内部类。
作者: 齐小灰同学    时间: 2015-4-8 22:09
匿名对象就是 方法只调用一次的时候,有的时候程序员发懒就懒得创建引用,直接使用对象调用方法;另一种使用场景是 类作为参数的时候。这个时候需要匿名对象。
作者: 君嘘    时间: 2015-4-8 22:21
本帖最后由 君嘘 于 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);






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2