java中带参数匿名内部类_Java中的匿名内部类

一、匿名内部类

之前的所有类都有自己的名字,但是有时候如果某个接口的实现类(或者某个父类的子类)只需要使用一次,此时这样的类如果我们单独定义出来则需要单独为其创建一个“*.java”文件。那么感觉浪费,为了避免这样的浪费可以将这个只使用一次的类定义成匿名内部类直接在需要的地方使用。

如果要使用匿名内部类必须在抽象类或者接口的基础上实现。匿名内部类一般可以作为方法的参数传递,也可以在方法中直接定义。

DEMO:基本的匿名内部类

8024c4234ae7d98a9b5e8bec2aa87645.png

8f10de55a1442245370877214dd395d2.png

435a7a2e1de2f56d0072d41c77d7a7af.png

3002cd8d97792a3f0bc6906b27fbfa41.png

DEMO :匿名内部类对象作为方法的实际参数传递

cc98968dcf4234b25e17413cddef0860.png

cf458a819e6ac6c590088dabef12a9e5.png

9cefef6db1d325576127c0e083c542a1.png

以上就是匿名内部类作为方法的实际参数传递。

DEMO :在方法中直接创建匿名内部类对象

be98c0c196c1c28a2907a6848fa729e8.png

bccabb8e3b4b2e623f5f01c114e39729.png

224307f56237dbbeb08eead27fe7ea0f.png

166880838176dea1a664426f47486762.png

总结:

1、匿名内部类对象需要在抽象类或者接口的基础.上实现

2、匿名内部类对象可以作为方法的参数传递也可以直接在方法体中创建

3、方法中的匿名内部类可以直接访问方法的参数和局部量吗?

答:在jdk1.8之前需要使用final修饰方法的参数和局部变量,在之后可以直接访问。

有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

欢迎关注微信公众号:码邦主

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java匿名内部类是一种特殊的内部类,它没有显式的类名。匿名内部类通常用于创建一个只需要使用一次的类的实例。匿名内部类可以通过继承一个类或实现一个接口来实现。 比较匿名内部类的方式有两种。第一种是通过继承一个类来创建匿名内部类。在这种情况下,匿名内部类会继承指定类的所有方法和属性,并可以重写其的方法。通过重写方法,可以实现自定义的行为。 第二种方式是通过实现一个接口来创建匿名内部类。在这种情况下,匿名内部类会实现指定接口的所有方法,并可以在方法定义自己的逻辑。 例如,可以使用匿名内部类来实现一个接口的方法,如下所示: ``` Interface01 interface01 = new Interface01() { @Override public void show() { System.out.println("使用了匿名内部类"); } }; interface01.show(); ``` 在这个例子,我们创建了一个匿名内部类,实现了Interface01接口的show()方法,并在方法输出了一条信息。 需要注意的是,匿名内部类在编译期间会生成一个以$编号结尾的class文件,即它被识别为一个真实的类。在编译前(java文件)时,它是以匿名的形态存在的。\[2\]\[3\] #### 引用[.reference_title] - *1* [【java笔记】Java的匿名类和匿名内部类](https://blog.csdn.net/zuzhiang/article/details/118016420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java基础——匿名内部类](https://blog.csdn.net/qq_52519008/article/details/127154696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值