社区
Java SE
帖子详情
求助:什么情况下使用匿名内部类?
空指针不懂404的忧伤
2012-05-09 09:38:31
求助:什么情况下使用匿名内部类?匿名内部类有什么好处?
...全文
617
15
打赏
收藏
求助:什么情况下使用匿名内部类?
求助:什么情况下使用匿名内部类?匿名内部类有什么好处?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
树先生的博客
2013-08-06
打赏
举报
回复
1:匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句, ( new <类或接口> <类的主体> ) 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。如果匿名类实现了一个接口,它的主体必须实现接口的方法。 2.匿名内部类的注意事项 ·匿名内部类不能有构造方法。 ·匿名内部类不能定义任何静态成员、方法和类。 ·匿名内部类不能是public,protected,private,static。 ·只能创建匿名内部类的一个实例。 ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。 ·内部类只能访问外部类的静态变量或静态方法。 3.匿名内部类的作用 Java的内部类和C++中的嵌套类有本质的不同:C++的嵌套类没有指向包装类的句柄。仅仅表达一个封装的概念;但是Java的内部类不同,它可以访问包装类的成员(这表示它拥有指向包装类的句柄)。
空指针不懂404的忧伤
2012-05-11
打赏
举报
回复
我又练习了好多例子,好像明白了!谢谢大家了哈!
allan_chan
2012-05-11
打赏
举报
回复
最大的好处,就是封装性。对于需要构造数据的时候,用的比较多~~~
dracularking
2012-05-11
打赏
举报
回复
即用即造,但无法重用
aduwu_para
2012-05-11
打赏
举报
回复
受Core Java作者Cay Hortsmann影响,我基本在设置
动作监听时都是用匿名内部类!
Ade子夜
2012-05-11
打赏
举报
回复
[Quote=引用 9 楼 的回复:]
swing,awt事件中用的比较多,以及spring框架中。灵活性比较大。省去建立一个新类。
一般都是接口,而且这样的接口方法的个数都比较少。
[/Quote]
有道理!!!
古布
2012-05-11
打赏
举报
回复
swing,awt事件中用的比较多,以及spring框架中。灵活性比较大。省去建立一个新类。
一般都是接口,而且这样的接口方法的个数都比较少。
tools_csnd
2012-05-11
打赏
举报
回复
在桌面应用开发的时候,会经常使用匿名类。
MiceRice
2012-05-10
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
好像有一点理解了,就是不用引用,直接来对象是不是啊?
[/Quote]
没看懂。。。就是不单独写类定义,而是直接在构造对象时同步完成类定义,简单举例:
Thread t = new Thread(new Runnable() {
public void run() {
...
}
});
t.start();
这里面 new Runnable() { 这段代码,就是匿名类。
a395885670
2012-05-10
打赏
举报
回复
实现观察者模式的时候 经常用到内部类
空指针不懂404的忧伤
2012-05-10
打赏
举报
回复
好像有一点理解了,就是不用引用,直接来对象是不是啊?
beiouwolf
2012-05-10
打赏
举报
回复
简单来说,就是懒人专用...
个人不太喜欢匿名内部类,代码不优雅
sdwe9091
2012-05-09
打赏
举报
回复
啥时候方便啥时候用呗,譬如实现一个接口的时候就很常用
昨日凡阳
2012-05-09
打赏
举报
回复
[Quote=引用楼主 的回复:]
求助:什么情况下使用匿名内部类?匿名内部类有什么好处?
[/Quote]
1、内部类的第一个好处,隐藏你不想让别人知道的操作,也即封装性。
2、非静态内部类对象有着指向其外部类对象的引用
等等。
给你一个例子,看起来会非常直观。
http://www.examw.com/biancheng/java/157670/
MiceRice
2012-05-09
打赏
举报
回复
个人理解是:图方便的时候。
好处就是省事,你不用去完整定义一个类或者内部类。
很多东西都是为了方便你使用,而并非说绝对要这么用。
比如:while、do while、for,foreach 都是循环,只是某些场合用某种更方便。
JAVA期末考试重点代码段整合
JAVA考试的重点得分题目——代码填写,大段大段的代码需要填写,若不是完全吃透课程,很难全部写出来,这些事重点考核的代码段,背一下
Rust正版平台 Steam 的局域网服务端架构手册.docx
Rust正版平台 Steam 的局域网服务端架构手册.docx
情侣睡前故事15篇.docx
情侣睡前故事15篇.docx
HTTP500修复脚本
错误IIS中HTTP500错误,常常出现,如果有里这个,你就可以修复IIS。
初中语文文学讨论美文荐读一封寄给上帝的信
初中语文文学讨论美文荐读一封寄给上帝的信
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章