java(教學0)12章java之枚舉_第1頁
java(教學0)12章java之枚舉_第2頁
java(教學0)12章java之枚舉_第3頁
java(教學0)12章java之枚舉_第4頁
java(教學0)12章java之枚舉_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第12章 枚舉 隨著計算機的不斷普及,程序不僅只用于數值計算,還更廣泛地用于處理非數值的數據。例如,性別、月份、星期幾、顏色、單位名、學歷、職業等,都不是數值數據。在程序設計語言中,一般用一個數值來代表某一狀態,這種處理方法不直觀,易讀性差。如果能在程序中用自然語言中有相應含義的單詞來代表某一狀態,則程序就很容易閱讀和理解。要實現這種功能就要用到我們這一章要學習的枚舉。整理課件12.1 枚舉簡介 事先考慮到某一變量可能的取值,盡可能用自然語言中含義清楚的單詞來表示它的每一個值,這種方法稱為枚舉方法。用這種方法定義的類型稱為枚舉類型。在生活中有很多關于枚舉的例子,就如圖所示的兩個例子。整理課件1

2、2.2 枚舉的使用 枚舉在Java語言中的作用很大。它可以對類似的相同類型的對象同時進行聲明,在程序中調用這些元素時,不會出現混淆和重復。由于枚舉的統一性,使得開發人員編寫的代碼量大大減少了,同時增加了程序的閱讀性和修改性。下面我們就來學習如何定義和使用枚舉。整理課件12.2.1 常見的枚舉定義方法 在中,Java引入了關于枚舉類型的設置方法,即使用enum關鍵字。其一般的定義語法,如圖所示。整理課件12.2.1 常見的枚舉定義方法 例如我們可以舉一個例子,比如設枚舉名為weekday,枚舉值有7個,即一周的7天。則凡被說明為weekday類型的變量取值,只能是這7天中的某一天。枚舉變量有三種

3、說明方式,我們可以采取任意一種方式進行說明,如圖所示。整理課件 在程序中使用枚舉 當創建了一個枚舉類型之后,就意味著要在今后的代碼中進行調用。調用先前定義的枚舉類型,同其他調用語句一樣,需要聲明該類的一個對象,并通過對象對枚舉類型進行操作。整理課件12.2.3 在switch語句中使用枚舉 使用enum關鍵字創建的枚舉類型,可以直接在多處控制語句中使用,如switch語句等。在JDK 之前,switch語句只能用于判斷字符或數字,而在JDK 之后,通過enum創建的枚舉類型,也可以被switch判斷使用。整理課件12.3 枚舉類和枚舉關鍵字 枚舉類型的出現,有助于簡潔程序的代碼量,減少出錯率。

4、在大多數情況下,枚舉類和枚舉關鍵字是相互依存的。整理課件12.3.1 枚舉類 枚舉類是在包下的一個公共類,它的作用是用來構造新的枚舉類型。這是JDK 之后Java推出的一個新的類,用來完善枚舉這一常用集合在Java中的不足。在JDK API中我們可以看到,enum類定義了大約十多個方法。我們可以用表簡要的介紹一下這些方法。方法名稱方法名稱方法作用方法作用clone()復制一份當前對象,并返回compareTo()比較此枚舉于指定對象的順序equals()當指定對象等于此枚舉常量時,返回truehashCode()返回枚舉常量的哈希碼name()返回枚舉常量的名稱,在其枚舉聲明中對其進行聲明or

5、dinal()返回枚舉常量的系數toString()返回枚舉常量的名稱,它包含在聲明中valueOf()返回帶指定名稱的指定枚舉類型的枚舉常量values()返回當前對象取值范圍整理課件12.3.2 枚舉關鍵字 相對于枚舉類,枚舉關鍵字(enum關鍵字)則是定義的一個枚舉類型。實際上,在此次定義的過程中,通過enum關鍵字相當于定義了一個類,并且此類將繼承enum類。整理課件12.4 類集對于枚舉的支持 在JDK 之后,Java中又增加了兩個類集的操作類,EnumMap和EnumSet來更好地使用枚舉。整理課件12.4.1 EnumMap Map是Java中的一個類,EnumMap是Map類的

6、子類。我們可以調用EnumMap的方法來實現對對象的控制。整理課件12.4.2 EnumSet EnumSet本身是Set接口的子類但是此類中并沒有定義任何的構造方法,這表示構造方法被私有化了。所有對此類方法的操作均是靜態操作。整理課件12.5 枚舉的構造方法、接口和抽象方法 枚舉的使用非常靈活。枚舉可以應用于代碼中的各個角落 ,只要定義的對象具有枚舉的形式,均可以使用枚舉對其定義,這樣在減少代碼量的同時,也增加了代碼的可讀性和可操作性。我們下面分別對枚舉的構造方法、接口和抽象方法作一簡要說明。整理課件12.5.1 枚舉的構造方法 在枚舉中可以直接定義構造方法。但要注意的是:一旦構造方法定義之

7、后,則所有的枚舉對象都必須明確調用此構造方法。整理課件12.5.2 枚舉的接口 當一個枚舉實現一個接口之后,各個枚舉對象都必須分別實現接口中的抽象方法。 在調用枚舉時,需要在后面實現在接口中定義的方法getColor(),只有這樣,才能實現接口,而想直接調用RED(紅色)這樣的方式是錯誤的。 定義在枚舉里的抽象方法必須在后期聲明的枚舉類型中,任何一個對象都分別實現接口中的抽象方法后才能測試成功。整理課件12.5.3 枚舉的抽象方法 我們可以通過枚舉實現接口,同樣,Java也可以在枚舉中直接定義抽象方法。并且在一個枚舉中可以定義一個或多個抽象方法。同樣要注意的是:枚舉中的每個對象都必須單獨地實現此方法。整理課件12.6 小結 在這一章中我們給大家介紹了枚舉的概念、枚舉類和枚舉關鍵字、類集對枚舉的支持和枚舉的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論