首页 > 代码库 > JAVA局部内部类

JAVA局部内部类

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

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

我是这样猜测的

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

JAVA局部内部类