小酌JAVA-匿名內部類

什麼是匿名內部類?? (小朋友全是問號)
首先匿名類就是沒有名字,其次匿名內部類就是簡化代碼編寫,所以匿名類內部只能執行依次,這都是我個人的理解。
我們還是拿例子來看看匿名內部類的使用,這裏我們先拿線程Runnable接口爲例,如何通過匿名內部類來實現Runnable接口
在這裏插入圖片描述
再讓我們看看運行的結果:
在這裏插入圖片描述
先從程序上來看,這裏通過Thread類去創建一個線程,並將該線程起名爲“線程1”,然後通過匿名類去實現Runnable接口的run() 方法 這裏使用了一個currentThread() 去返回該條線程的名字(這是多線程的相關知識,感興趣的可以去學習一下)。在run() 方法中輸出該條線程的名字,最後讓線程運行起來。
再讓我們看看通過創建一個類去實現一個接口的例子,看看運行的結果是否相同
在這裏插入圖片描述
運行的結果爲:
在這裏插入圖片描述
我們會看到運行的結果與上一個例子的結果相同,這裏是涉及到接口實現的相關知識,就不加以解釋。
讓我們想一下符合匿名類要那些條件呢??
我個人總結就是,首先必須要有繼承或者實現一個接口,但是隻能繼承一個父類,或者實現一個接口。

Father f = new Father();//new一個對象

這裏我們正常去new一個對象,()後的分號則代表結束

Father f = new Father(){...};

這裏{… …}中爲new出對象的具體的實現方法然後加 ;則代表結束。但是前提是必須要實現了某個接口或者是繼承某個類。
讓我們使用一個接口來看看匿名類如何實現接口。

在這裏插入圖片描述
在這裏插入圖片描述
這裏我們就不在加以解釋,但是是否有疑問,如果想在匿名類中去創建一個方法能否實現呢?如果按照上個例子的方式,是不可以的,但是我們可以通過下面這種方式去創建方法,並且去實現方法。
在這裏插入圖片描述
在這裏插入圖片描述
到這就是我個人對於匿名類的學習理解,最後如何使用,還是看你是如何處理一個問題,還是多去做一些小項目才能使一些知識點影響更加的是深刻。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章