JAVA局部内部类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA局部内部类相关的知识,希望对你有一定的参考价值。

在刚刚学到的android开发中了解到Button的onClick是通过局部内部类的方式实现的,具体的原理我以后再去了解,只是遇到问题总是想知道为什么,不要告诉我这是规则,死记住就可以了。

问题是局部内部类定义在方法中,为什么使用方法中的变量,只能使用被final修饰的呢?

我是这样猜测的

局部内部类,不管在哪人家都是一个类呀,定义一个类,可以访问其他类的成员,嗯,这个我没意见,但是要访问人家类成员方法里的成员,这就有点过分了吧。根本不在一个作用域呀,函数里的变量生命周期多短呀,假如可以访问,那么函数里的变量都出栈了,万一指向创建的内部类对象的引用还活着呢。那多尴尬。别以为你是在那个方法里写的就可以访问了,你也是一个类呀。那为啥加上final修饰的常量就可以访问呢?final修饰的是一个常量,是一个有名字的常量,常量是不可改变的,既然是常量 写final  int x=3;   在别处写x与3是一样的。既然一样我就把3写成x吧,反正x也不会变化。对于电脑而言,记住x不如直接记成3

以上是关于JAVA局部内部类的主要内容,如果未能解决你的问题,请参考以下文章

Java中,局部内部类

java9-8 局部内部类

Java面向对象(OOP)--内部类(局部内部类)

java 如何调用局部内部类和匿名类

java内部类之成员内部类之局部内部类

JAVA局部内部类