*Java中的匿名内部类的实现的三种方法案例的解释

Java中的匿名内部类的实现的三种方法案例的解释
注:(案例来源于 《Java编程指南-清华大学出版社版》

示例代码:
在这里插入图片描述

代码基本顺序

  1. 实现接口的匿名内部类
    各个代码块的上方的标题可见,首先创建一个接口,而后创建一个类,在类中定义一个方法,此时方法参数写作接口的一个接口,而后使用接口调用接口中的方法。于是便可以在主方法内部创建一个类的对象,再由对象来调用类的方法,即已定义的哪个方法。
    方法的参数的组成首先是一个接口的对象+大括号+接口的方法
  2. 继承类的匿名内部类的实现
    其首先是创建一个抽象的类,(经实验普通类也可以),而后使用继承的方式继承原类的方法,在主方法内创建该类的对象以调用从而间接地实现原类的方法,此时原类是匿名的。但是此时要注意打印内容是无法显示出来的,其须由实例化的对象进行调用才可以显示
  3. 具体类作为内部类的情况
    由一个静态的类直接调用内部方法的一种表达方式(图中左侧的"Person person"可以去掉,这里只是为了可以打印出来故未删除

解释内容

  1. 实现接口的匿名内部类
    首先在类View中的方法参数中创建了一个接口,其目的很明显是为了在方法中调用接口的方法,此时listener并不是对象,并不能真正的调用接口内的方法。而后在主方法内所创建的对象所调用的方法参数中则首先为接口创建了对象,此时listener作为接口拥有了调用接口的方法的能力,可以简单地理解为类方法参数和主方法中的创建对象划上了等号而真正的创建了一个对象,此时OnClick()可以正常发挥作用,如果缺少了创建对象则会报错,而至于在创建对象后的大括号及其内容则是为OnClick()赋予具体的方法内容也就是所谓的匿名内部类了,此时我们发现我们在主方法内并未提及端口listener,却同样调用它调用的方法,从而实现了匿名的效果。

  2. 继承类的匿名内部类的实现
    其借助了类的继承,间接的将原本的类中的方法实现从而实现了匿名的效果,但是其实现需要借助二类的对象的调用才能发挥作用

  3. 匿名内部类的实现
    其实这种匿名内部类可以称得上是匿名的,但是效果也可以发现是比较弱的,其关键原因是因为它事实上还是调用了自己的方法而已,只不过由匿名内部类的特征而已,所以其用的也比较少。
    其次要注意第三种方法必须是静态的类才可以,否则会报错。因为main方法是静态的只能运行静态的方法,只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法;derived from

以上内容如有不足或错误望请指正

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值