匿名内部类(包括最佳应用场景)

目录

1. 定义

2. 基本语法

3. 使用细节

4. 最佳应用场景


1. 定义

匿名内部类是定义在外部类的局部位置,比如方法中,没有类名(表面没有名字,但JDK的底层还是会分配名字:外部类名+ $1 ,同一个外部类的 下一个匿名内部类 分配的名字是 + $2 ,依次向后递增)。本质还是一个类,同时还是一个对象。

2. 基本语法

new 类或接口(参数列表) {

//类体

};

3. 使用细节

1)匿名内部类的语法比较特别,因为匿名内部类既是一个类的定义,同时它本身也是一个对象。因此从语法上看,它既有定义类的特征,也有创建对象的特征。因此调用匿名内部类的方法有两种:

①创建类的对象实例调用

②直接作为对象调用

2匿名内部类实际上也是继承了父类,或者是实现了接口

3)可以直接访问外部类的所有成员,包括私有的。

4)不能添加访问修饰符,因为它的地位就是一个局部变量。

5)作用域:仅仅在定义它的方法或代码块中。

6)匿名内部类本身只能访问一次,但创建的对象实例可以多次访问。

7)匿名内部类 访问 外部类的成员,访问方式:直接访问。

8)外部其他类 不能访问 匿名内部类,匿名内部类就是一个局部变量。

9 如果外部类和匿名内部类的成员重名时,默认遵循就近原则,如果想要访问外部类的成员,则可以使用(外部类名.this.成员)去访问。

4. 最佳应用场景

匿名内部类本质是一个对象,当该接口实现只使用一次时,当作实参直接传递,简洁高效。

  • 28
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值