關於匿名內部類的問題

2021-07-25 05:06:20 字數 526 閱讀 8426

匿名內部類是什麼?如何訪問在其外面定義的變數?

使用的形參為何要為final?

為了避免引用值發生改變,例如被外部類的方法修改等,而導致內部類得到的值不一致,於是用final來讓該引用不可改變。

故如果定義了乙個匿名內部類,並且希望它使用乙個其外部定義的引數,那麼編譯器會要求該引數引用是final的。

匿名內部類如何初始化?

一般都是利用構造器來完成某個例項的初始化工作的,但是匿名內部類是沒有構造器的。

使用構造**塊!利用構造**塊能夠達到為匿名內部類建立乙個構造器的效果

注意:

1、使用匿名內部類時,我們必須是繼承乙個類或者實現乙個介面,但是兩者不可兼得,同時也只能繼承乙個類或者實現乙個介面。

2、匿名內部類中是不能定義建構函式的。

3、匿名內部類中不能存在任何的靜態成員變數和靜態方法。

4、匿名內部類為區域性內部類,所以區域性內部類的所有限制同樣對匿名內部類生效。

5、匿名內部類不能是抽象的,它必須要實現繼承的類或者實現的介面的所有抽象方法。

內部類,匿名內部類

內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...

內部類 匿名內部類

把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...

內部類 匿名內部類

package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...