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