匿名內部類的定義:
如果介面的實現類(或者是父類的子類)只需要使用唯一的一次,
那麼這種情況下就可以省略掉該類的定義,而改為使用【匿名內部類】
匿名內部類的定義格式:
介面名稱 物件名 = new 介面名稱() ;
一般使用介面必須定義乙個新的介面實現類impl。而使用匿名內部類可以省略這一步,直接new介面 在()後新增大括號,在大括號裡面就是乙個類,在裡面進行覆蓋重寫
public
class
demomain};
obj.
method()
;}}
對格式進行解析「new」 介面名稱() 進行解析:
1.new代表建立物件的動作
2.介面名稱就是匿名內部類需要實現那個介面
3.這才是匿名內部類的內容
另外還要注意幾點問題:
1.匿名內部類,在【建立物件】的時候,只能使用唯一一次。
如果希望多次建立物件,而且類的內容一樣的話,那麼必須使用單獨定義的實現類了。
2.匿名物件,在【呼叫方法】的時候,只能呼叫唯一一次。
如果希望同乙個物件呼叫多次方法,那麼必須給物件起個名字。
3.匿名內部類是省略【實現類/子類名稱】,但是匿名物件是省略了【物件名稱】
強調:匿名內部類和匿名物件不是一回事!!
public
class
demomain
public
void
method2()
};obja.
method1()
; obja.
method2()
;//使用了匿名內部類,而且省略了物件名稱,也是匿名物件
newmyinte***ce()
public
void
method2()
}.method1()
;new
myinte***ce()
public
void
method2()
}.method1()
;//因為匿名物件無法呼叫第二次方法,所以需要再建立乙個匿名內部類的物件
}}
內部類 內部類的訪問 匿名內部類
內部類 將乙個類定義在另乙個類的裡面,對立面那個類就成為內部類 內建類,巢狀類 定義 當描述事物時,事物的內部還有事物,該事物用內部類來描述。因為內部事務在使用外部事物的內容。舉例子心臟 內部類的訪問規則 1內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類的成員 因為內部類中持有...
內部類 匿名內部類的使用
內部類的使用 classouter classinner public voidget a a public voidtest this.get newa public voidfun1 system.out println i public classtest public static void...
內部類的介紹 匿名內部類
顧名思義 沒有名字的內部類,其實就是沒有類名的區域性內部類 一切特徵都與區域性內部類相同 這句話請記住 必須繼承乙個父類或者實現乙個介面 心得 為什麼介面不能直接new,直接例項化 其實我覺得是可以的,但是不建議樣做,為什麼呢,我們平常都是new介面的實現類,或者叫做子類把,因為介面的方法,在子類中...