java枚舉如何運用?
網友解答: enum是JDK1.5中引入的新特性,存放在 java.lang包中。它是一種新的類型,允許用常量來表示特定的數據片斷,而且全部都以類型安全的形式來表示。它的本質是類,創(chuàng)建枚
enum是JDK1.5中引入的新特性,存放在 java.lang包中。它是一種新的類型,允許用常量來表示特定的數據片斷,而且全部都以類型安全的形式來表示。
它的本質是類,創(chuàng)建枚舉類型要使用enum關鍵字,隱含了所創(chuàng)建的類型都是 java.lang.Enum 類的子類(java.lang.Enum 是一個抽象類,它實現了implements Comparable<E, Serializable接口),它的構造方法是private私有的,因此外部是不能創(chuàng)建實例的。
那么使用枚舉有仕么好處呢?
1:常量的使用,在JDK1.5之前,我們定義常量都是:public static fianl....。而現在有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法。枚舉的使用增強了程序的健壯性,比如在引用一個不存在的枚舉值的時候,編譯器直接會報錯。
2:枚舉在某些條件下可讀性高,代碼不冗余,如下圖所示,ImageType枚舉類,BANNER的寬700,高300,當我們切圖寫公共方法的時候,參數寫成枚舉類型即可。傳入的是哪個枚舉,方法里取出枚舉的寬高切圖即可,省去了大量的if else判斷。代碼可讀性會提高。
3:Java中switch可以接收的數據類型,JDK1.6以前的版本支持byte、char、short、int、enum,但是到了1.7之后,開始支持string參數了,如果你的jdk環(huán)境是1.6之前的(包括1.6)那么你使用switch的時候就要注意了,可以通過enum.valueOf(string)把字符串轉換成enum來使用switch語句。
了解了枚舉有哪些好處之后,我們簡單來看下它的常用方法有哪些
1:int compareTo(E o)
比較此枚舉與指定對象的順序。
2:Class<E getDeclaringClass()
返回與此枚舉常量的枚舉類型相對應的 Class 對象。
3:String name()
返回此枚舉常量的名稱,在其枚舉聲明中對其進行聲明。
4:int ordinal()
返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數為零)。
5:String toString()
返回枚舉常量的名稱,它包含在聲明中。
6:static <T extends Enum<T T valueOf(Class<T enumType, String name)
返回帶指定名稱的指定枚舉類型的枚舉常量。
7:static T[] values()
將枚舉類轉換成一個枚舉類型的數組
網友解答:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。
在實際編程中,往往存在著這樣的“數據集”,它們的數值在程序中是穩(wěn)定的,而且“數據集”中的元素是有限的。
例如星期一到星期日七個數據元素組成了一周的“數據集”,春夏秋冬四個數據元素組成了四季的“數據集”。
而這樣的數據集枚舉就派上了用場。下面用一個例子來說明使用方法:
還有什么不明白的可以問我,例子是基本的用法,需要更深入的可以百度一下。