黑马程序员技术交流社区
标题:
关于学习了匿名内部类的疑惑
[打印本页]
作者:
❦_H_t
时间:
2013-11-21 17:08
标题:
关于学习了匿名内部类的疑惑
本帖最后由 ❦_H_t 于 2013-11-22 20:04 编辑
首先,匿名内部类到底在什么场合适合应用?看了毕老师的视频,虽然有提及到,但是却没有真正理解到
还有匿名内部类
abstract class Person {
public abstract void eat();
}
class Demo{
public static void main(String [] args){
Person p = new Person(){
public void eat(){
System.out.print("吃东西");
}
}
复制代码
这样来实现有什么意义呢?直接新建一个类继承后实现抽象方法和这个有什么区别吗?
作者:
❦_H_t
时间:
2013-11-21 17:12
代码不知道为什么贴不完,少了两个中括号
作者:
汪洋大海
时间:
2013-11-21 17:38
这样写就是为了方便。主要应用就是GUI里面了,学到那里你就明白了。专门去建一个类实现当然可以。只要你不怕麻烦。
作者:
che201311
时间:
2013-11-21 17:45
java的匿名内部类的语法规则看上去有些古怪,不过如同匿名数组一样,当你只需要创建一个类的对象而且用不上它的名字时,使用内部类可以使代码看上去简洁清楚,
一般用在你要继承一个类或者实现一个接口,而且这个类只需要你个实例,以至于你不用给它起名字。
作者:
一步一脚印
时间:
2013-11-21 20:13
我们接口作为参数时就经常使用匿名类传参!
作者:
唐志海
时间:
2013-11-21 20:15
加强封装,促进代码的可读性
作者:
❦_H_t
时间:
2013-11-22 09:58
那它的应用场合只适用于GUI吗?如果是话,何必要先讲匿名内部类呢?不如直接放到GUI那一块讲更容易理解
作者:
ypeusksk
时间:
2013-11-22 10:07
匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
作者:
樊志伟
时间:
2013-11-22 18:08
new一个匿名内部类对象就是你只用这个对象操作一两次其方法,操作完之后就不用了。
至于为什么不用一个新类实现抽象方法之后在new一个对象是因为:匿名内部类用完之后在就可以不用,被回收。而 你说的那种实现抽象类之后再new出的对象的会一直等到程序结束后才能被当作垃圾回收。
简而言之就是,如果你想要只用一次,就用你贴子里的这种方法,这种方法节省资源。
如果你想一直使用new出的对象的话,就用第二种方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2