編程技術(shù)語(yǔ)言,Java匿名內(nèi)部類(lèi)原理與用法詳解

編程技術(shù)語(yǔ)言,Java匿名內(nèi)部類(lèi)原理與用法詳解

長(zhǎng)沙中公優(yōu)就業(yè)      2022-05-05 09:35:01     93

編程技術(shù)語(yǔ)言,Java匿名內(nèi)部類(lèi)原理與用法詳解,Java匿名內(nèi)部類(lèi)原理與用法,結(jié)合實(shí)例形式分析了Java匿名內(nèi)部類(lèi)的概念、原理、應(yīng)用與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下:一點(diǎn)

課程價(jià)格 請(qǐng)咨詢(xún)

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

Java匿名內(nèi)部類(lèi)原理與用法,結(jié)合實(shí)例形式分析了Java匿名內(nèi)部類(lèi)的概念、原理、應(yīng)用與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下:

一點(diǎn)睛

匿名內(nèi)部類(lèi)適合創(chuàng)建那種只需要一次使用的類(lèi),定義匿名內(nèi)部類(lèi)的語(yǔ)法格式如下:

從上面的定義可以看出,匿名內(nèi)部類(lèi)必須繼承一個(gè)父類(lèi),或?qū)崿F(xiàn)一個(gè)接口,但最多只能繼承一個(gè)父類(lèi),或?qū)崿F(xiàn)一個(gè)接口。

兩條規(guī)則。

匿名內(nèi)部類(lèi)不能是抽象類(lèi)。

匿名內(nèi)部類(lèi)不能定義構(gòu)造器。由于匿名內(nèi)部類(lèi)沒(méi)有類(lèi)名,所以無(wú)法定義構(gòu)造器,但匿名內(nèi)部類(lèi)可以初始化塊,可以通過(guò)初始化塊來(lái)完成構(gòu)造器需要完成的工作。

二實(shí)戰(zhàn)

1.點(diǎn)睛

最常用的創(chuàng)建匿名內(nèi)部類(lèi)的方式是創(chuàng)建某個(gè)接口類(lèi)型的對(duì)象

2.代碼

3.運(yùn)行

購(gòu)買(mǎi)了一個(gè)AGP顯卡,花掉了567.8

4.說(shuō)明

定義匿名內(nèi)部類(lèi)無(wú)須class關(guān)鍵字,而是在定義匿名內(nèi)部類(lèi)時(shí)直接生成該匿名內(nèi)部類(lèi)的對(duì)象。

由于匿名內(nèi)部類(lèi)不能是抽象類(lèi),所以匿名內(nèi)部類(lèi)必須實(shí)現(xiàn)它的抽象父類(lèi)或接口里包含的所有抽象方法。

三實(shí)戰(zhàn)

1.點(diǎn)睛

當(dāng)通過(guò)接口來(lái)創(chuàng)建匿名內(nèi)部類(lèi)時(shí),匿名內(nèi)部類(lèi)不能顯示創(chuàng)建構(gòu)造器,因此匿名內(nèi)部類(lèi)里只有一個(gè)隱式的無(wú)參構(gòu)造器,故new接口名后的括號(hào)里不能傳入?yún)?shù)值。

如果通過(guò)繼承父類(lèi)來(lái)創(chuàng)建匿名內(nèi)部類(lèi)時(shí),匿名內(nèi)部類(lèi)將擁有和父類(lèi)相似的構(gòu)造器,此處的相似指的是擁有相同的形參列表。

2.代碼

3.運(yùn)行

購(gòu)買(mǎi)了一個(gè)電子示波器,花掉了67.8

匿名內(nèi)部類(lèi)的初始化塊...

購(gòu)買(mǎi)了一個(gè)鍵盤(pán),花掉了56.2

當(dāng)創(chuàng)建以Device為父類(lèi)的匿名內(nèi)部類(lèi)時(shí),既可以傳入?yún)?shù),代表調(diào)用父類(lèi)帶參數(shù)的構(gòu)造器;也可以不傳入?yún)?shù),代表調(diào)用父類(lèi)無(wú)參數(shù)的構(gòu)造器。

當(dāng)創(chuàng)建匿名內(nèi)部類(lèi)時(shí),必須實(shí)現(xiàn)接口或抽象父類(lèi)里的所有抽象方法。如果有需要,也可以重寫(xiě)父類(lèi)中的普通方法。

四實(shí)戰(zhàn)

1.點(diǎn)睛

在Java 8之前,Java要求被局部?jī)?nèi)部類(lèi)、匿名內(nèi)部類(lèi)訪問(wèn)的局部變量必須使用final修飾,從Java 8開(kāi)始這個(gè)限制取消了,Java 8更加智能:如果局部變量被匿名內(nèi)部類(lèi)訪問(wèn),那么該局部變量相對(duì)于自動(dòng)使用了final修飾。

2.代碼

3.結(jié)果

8

4.說(shuō)明

Java 8將這個(gè)功能稱(chēng)為“effectively final”,它的意思是對(duì)于被匿名內(nèi)部類(lèi)訪問(wèn)的局部變量,可以用final修飾,也可以不用final修飾,但必須按照有final修飾的方式來(lái)使用——也就是一次賦值后,以后不能重新賦值。

以上就是長(zhǎng)沙中公優(yōu)就業(yè)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程技術(shù)語(yǔ)言,Java匿名內(nèi)部類(lèi)原理與用法詳解”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。