作為枚舉中的一個基礎(chǔ)類,是使用的方法中也有很多種,比如它能對枚舉進(jìn)行說明,在知識點(diǎn)上和之前所學(xué)的接口、靜態(tài)方法等都能有所聯(lián)系。接下來我們對Enum類使用的一些范圍進(jìn)行說明,然后帶來幾種Enum類常見使用方法的介紹,最后就其中的compareTo()方法帶來實(shí)例講解。
1.Enum類的說明
Enum類有兩個成員變量:name和ordinal。其中,name用于記錄枚舉常量的名字。比如APPLE、ORANGE和BANANA。ordinal用于記錄枚舉常量在聲明時的順序(從0開始)。比如APPLE是0、ORANGE是1、BANANA是2。
Enum類有一個構(gòu)造函數(shù),它有兩個入?yún)?,分別為name和ordianl賦值。
Enum類重寫了toString()方法,返回枚舉常量的name值。
Enum類重寫了equals()方法,直接用等號比較。
Enum類不允許克隆,clone()方法直接拋出異常。(保證枚舉永遠(yuǎn)是單例的)
Enum類實(shí)現(xiàn)了Comparable接口,直接比較枚舉常量的ordinal的值。
Enum類有一個靜態(tài)的valueOf()方法,可以根據(jù)枚舉類型以及name返回對應(yīng)的枚舉常量。
Enum類不允許反序列化,為了保證枚舉永遠(yuǎn)是單例的。
2.Enum常見方法
(1)ordinal()方法:該方法獲取的是枚舉變量在枚舉類中聲明的順序,下標(biāo)從0開始,如日期中的MONDAY在第一個位置,那么MONDAY的ordinal值就是0,如果MONDAY的聲明位置發(fā)生變化,那么ordinal方法獲取到的值也隨之變化,注意在大多數(shù)情況下我們都不應(yīng)該首先使用該方法,畢竟它總是變幻莫測的。
(2)compareTo(E o)方法:比較枚舉的大小,注意其內(nèi)部實(shí)現(xiàn)是根據(jù)每個枚舉的ordinal值大小進(jìn)行比較的。
(3)name()方法與toString():幾乎是等同的,都是輸出變量的字符串形式。
(4)getDeclaringClass(): 返回該枚舉變量所在的枚舉類。
3.實(shí)例
以上面的compareTo()為例
輸出:
以上就是java中關(guān)于enum使用方法的介紹,相信大家對ordinal()、compareTo(E o)等方法都有了初步的了解,更多enum方法的使用,也會在接下來的文章中展現(xiàn)給大家。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢想。