在剛剛學到的android開發中瞭解到Button的onClick是通過區域性內部類的方式實現的,具體的原理我以後再去了解,只是遇到問題總是想知道為什麼,不要告訴我這是規則,死記住就可以了。

問題是區域性內部類定義在方法中,為什麼使用方法中的變數,只能使用被final修飾的呢?

我是這樣猜測的

區域性內部類,不管在哪人家都是一個類呀,定義一個類,可以訪問其他類的成員,嗯,這個我沒意見,但是要訪問人家類成員方法裡的成員,這就有點過分了吧。根本不在一個作用域呀,函式裡的變數生命週期多短呀,假如可以訪問,那麼函式裡的變數都出棧了,萬一指向建立的內部類物件的引用還活著呢。那多尷尬。別以為你是在那個方法裡寫的就可以訪問了,你也是一個類呀。那為啥加上final修飾的常量就可以訪問呢?final修飾的是一個常量,是一個有名字的常量,常量是不可改變的,既然是常量 寫final  int x=3;   在別處寫x與3是一樣的。既然一樣我就把3寫成x吧,反正x也不會變化。對於電腦而言,記住x不如直接記成3