匿名内部类的demo演示(匿名内部类持有外部类的实例引用)

本文介绍Java中匿名内部类的概念及应用场景,对比独立类定义,展示如何在仅使用一次的场景下利用匿名内部类简化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



匿名内部类:

匿名内部类是在抽象类和接口的基础之上发展起来的

Java代码  收藏代码
  1. package com.iflytek.innerclass;  
  2.   
  3. /** 
  4.  * @author xudongwang 2012-1-11 
  5.  *  
  6.  *         Email:xdwangiflytek@gmail.com 
  7.  */  
  8. public class NoNameClass01 {  
  9.     public static void main(String[] args) {  
  10.         new X().fun2();  
  11.     }  
  12. }  
  13.   
  14. interface A {  
  15.     public void fun();  
  16. }  
  17.   
  18. class B implements A {  
  19.     public void fun() {  
  20.   
  21.         System.out.println("Hello 准备匿名内部类");  
  22.     }  
  23. }  
  24.   
  25. class X {  
  26.     public void fun1(A a) {  
  27.         a.fun();  
  28.     }  
  29.   
  30.     public void fun2() {  
  31.         this.fun1(new B());  
  32.     }  
  33. }  

通过上面的Demo,如果现在假设B类只使用一次,那么还有必要将其定义成一个单独的类么?

 呵呵,此时就可以使用匿名内部类:

Java代码  收藏代码
  1. package com.iflytek.innerclass;  
  2.   
  3. /** 
  4.  * @author xudongwang 2012-1-11 
  5.  *  
  6.  *         Email:xdwangiflytek@gmail.com 
  7.  */  
  8. public class NoNameClass02 {  
  9.   
  10.     public static void main(String[] args) {  
  11.         new XX().fun2();  
  12.     }  
  13. }  
  14.   
  15. interface AA {  
  16.     public void fun();  
  17. }  
  18.   
  19. class XX {  
  20.     public void fun1(AA a) {  
  21.         a.fun();  
  22.     }  
  23.     public void fun2() {  
  24.         this.fun1(new AA() {  
  25.             public void fun() {  
  26.                 System.out.println("Hello 准备匿名内部类");  
  27.             }  
  28.         });  
  29.     }  
  30. }  

http://blog.youkuaiyun.com/zzjjiandan/article/details/9189943

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值