輕松學(xué)Java之枚舉.pptx

輕松學(xué)Java之枚舉.pptx

ID:52992090

大?。?23.98 KB

頁(yè)數(shù):18頁(yè)

時(shí)間:2020-04-09

輕松學(xué)Java之枚舉.pptx_第1頁(yè)
輕松學(xué)Java之枚舉.pptx_第2頁(yè)
輕松學(xué)Java之枚舉.pptx_第3頁(yè)
輕松學(xué)Java之枚舉.pptx_第4頁(yè)
輕松學(xué)Java之枚舉.pptx_第5頁(yè)
資源描述:

《輕松學(xué)Java之枚舉.pptx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第12章枚舉隨著計(jì)算機(jī)的不斷普及,程序不僅只用于數(shù)值計(jì)算,還更廣泛地用于處理非數(shù)值的數(shù)據(jù)。例如,性別、月份、星期幾、顏色、單位名、學(xué)歷、職業(yè)等,都不是數(shù)值數(shù)據(jù)。在程序設(shè)計(jì)語(yǔ)言中,一般用一個(gè)數(shù)值來代表某一狀態(tài),這種處理方法不直觀,易讀性差。如果能在程序中用自然語(yǔ)言中有相應(yīng)含義的單詞來代表某一狀態(tài),則程序就很容易閱讀和理解。要實(shí)現(xiàn)這種功能就要用到我們這一章要學(xué)習(xí)的枚舉。12.1枚舉簡(jiǎn)介事先考慮到某一變量可能的取值,盡可能用自然語(yǔ)言中含義清楚的單詞來表示它的每一個(gè)值,這種方法稱為枚舉方法。用這種方法定義的類型

2、稱為枚舉類型。在生活中有很多關(guān)于枚舉的例子,就如圖12.1所示的兩個(gè)例子。12.2枚舉的使用枚舉在Java語(yǔ)言中的作用很大。它可以對(duì)類似的相同類型的對(duì)象同時(shí)進(jìn)行聲明,在程序中調(diào)用這些元素時(shí),不會(huì)出現(xiàn)混淆和重復(fù)。由于枚舉的統(tǒng)一性,使得開發(fā)人員編寫的代碼量大大減少了,同時(shí)增加了程序的閱讀性和修改性。下面我們就來學(xué)習(xí)如何定義和使用枚舉。12.2.1常見的枚舉定義方法在JDK1.5中,Java引入了關(guān)于枚舉類型的設(shè)置方法,即使用enum關(guān)鍵字。其一般的定義語(yǔ)法,如圖12.2所示。12.2.1常見的枚舉定義方法例

3、如我們可以舉一個(gè)例子,比如設(shè)枚舉名為weekday,枚舉值有7個(gè),即一周的7天。則凡被說明為weekday類型的變量取值,只能是這7天中的某一天。枚舉變量有三種說明方式,我們可以采取任意一種方式進(jìn)行說明,如圖12.3所示。12.2.2在程序中使用枚舉當(dāng)創(chuàng)建了一個(gè)枚舉類型之后,就意味著要在今后的代碼中進(jìn)行調(diào)用。調(diào)用先前定義的枚舉類型,同其他調(diào)用語(yǔ)句一樣,需要聲明該類的一個(gè)對(duì)象,并通過對(duì)象對(duì)枚舉類型進(jìn)行操作。12.2.3在switch語(yǔ)句中使用枚舉使用enum關(guān)鍵字創(chuàng)建的枚舉類型,可以直接在多處控制語(yǔ)句中使

4、用,如switch語(yǔ)句等。在JDK1.5之前,switch語(yǔ)句只能用于判斷字符或數(shù)字,而在JDK1.5之后,通過enum創(chuàng)建的枚舉類型,也可以被switch判斷使用。12.3枚舉類和枚舉關(guān)鍵字枚舉類型的出現(xiàn),有助于簡(jiǎn)潔程序的代碼量,減少出錯(cuò)率。在大多數(shù)情況下,枚舉類和枚舉關(guān)鍵字是相互依存的。12.3.1枚舉類枚舉類是在java.lang包下的一個(gè)公共類,它的作用是用來構(gòu)造新的枚舉類型。這是JDK1.5之后Java推出的一個(gè)新的類,用來完善枚舉這一常用集合在Java中的不足。在JDKAPI中我們可以看到,

5、enum類定義了大約十多個(gè)方法。我們可以用表12.1簡(jiǎn)要的介紹一下這些方法。方法名稱方法作用clone()復(fù)制一份當(dāng)前對(duì)象,并返回compareTo()比較此枚舉于指定對(duì)象的順序equals()當(dāng)指定對(duì)象等于此枚舉常量時(shí),返回truehashCode()返回枚舉常量的哈希碼name()返回枚舉常量的名稱,在其枚舉聲明中對(duì)其進(jìn)行聲明ordinal()返回枚舉常量的系數(shù)toString()返回枚舉常量的名稱,它包含在聲明中valueOf()返回帶指定名稱的指定枚舉類型的枚舉常量values()返回當(dāng)前對(duì)象取

6、值范圍12.3.2枚舉關(guān)鍵字相對(duì)于枚舉類,枚舉關(guān)鍵字(enum關(guān)鍵字)則是定義的一個(gè)枚舉類型。實(shí)際上,在此次定義的過程中,通過enum關(guān)鍵字相當(dāng)于定義了一個(gè)類,并且此類將繼承enum類。12.4類集對(duì)于枚舉的支持在JDK1.5之后,Java中又增加了兩個(gè)類集的操作類,EnumMap和EnumSet來更好地使用枚舉。12.4.1EnumMapMap是Java中的一個(gè)類,EnumMap是Map類的子類。我們可以調(diào)用EnumMap的方法來實(shí)現(xiàn)對(duì)對(duì)象的控制。12.4.2EnumSetEnumSet本身是Set接

7、口的子類但是此類中并沒有定義任何的構(gòu)造方法,這表示構(gòu)造方法被私有化了。所有對(duì)此類方法的操作均是靜態(tài)操作。12.5枚舉的構(gòu)造方法、接口和抽象方法枚舉的使用非常靈活。枚舉可以應(yīng)用于代碼中的各個(gè)角落,只要定義的對(duì)象具有枚舉的形式,均可以使用枚舉對(duì)其定義,這樣在減少代碼量的同時(shí),也增加了代碼的可讀性和可操作性。我們下面分別對(duì)枚舉的構(gòu)造方法、接口和抽象方法作一簡(jiǎn)要說明。12.5.1枚舉的構(gòu)造方法在枚舉中可以直接定義構(gòu)造方法。但要注意的是:一旦構(gòu)造方法定義之后,則所有的枚舉對(duì)象都必須明確調(diào)用此構(gòu)造方法。12.5.2

8、枚舉的接口當(dāng)一個(gè)枚舉實(shí)現(xiàn)一個(gè)接口之后,各個(gè)枚舉對(duì)象都必須分別實(shí)現(xiàn)接口中的抽象方法。在調(diào)用枚舉時(shí),需要在后面實(shí)現(xiàn)在接口中定義的方法getColor(),只有這樣,才能實(shí)現(xiàn)接口,而想直接調(diào)用RED("紅色")這樣的方式是錯(cuò)誤的。定義在枚舉里的抽象方法必須在后期聲明的枚舉類型中,任何一個(gè)對(duì)象都分別實(shí)現(xiàn)接口中的抽象方法后才能測(cè)試成功。12.5.3枚舉的抽象方法我們可以通過枚舉實(shí)現(xiàn)接口,同樣,Java也可以在枚舉中直接定義抽象方法。并且在一個(gè)枚舉中可

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。