
文章插圖
一、枚舉類類的對(duì)象只有有限個(gè), 確定的. 我們稱此類為枚舉類.
說(shuō)明:
類的對(duì)象只有有限個(gè),確定的 。如:星期:Monday(星期一)、……、Sunday(星期天)性別:Man(男)、Woman(女) ? 季節(jié):Spring(春節(jié))……Winter(冬天)支付方式:Cash(現(xiàn)金)、WeChatPay(微信)、Alipay(支付寶)、BankCard(銀 行卡)、CreditCard(信用卡)就職狀態(tài):Busy、Free、Vocation、Dimission訂單狀態(tài):Nonpayment(未付款)、Paid(已付款)、Delivered(已發(fā)貨)、 Return(退貨)、Checked(已確認(rèn))Fulfilled(已配貨)線程狀態(tài):創(chuàng)建、就緒、運(yùn)行、阻塞、死亡2.當(dāng)需要定義一組常量時(shí),強(qiáng)烈建議使用枚舉類 。
3.若枚舉只有一個(gè)對(duì)象, 則可以作為一種單例模式的實(shí)現(xiàn)方式 。
枚舉類的實(shí)現(xiàn):
JDK1.5之前需要自定義枚舉類 。JDK 1.5 新增的 enum 關(guān)鍵字用于定義枚舉類 。枚舉類的屬性:
枚舉類對(duì)象的屬性不應(yīng)允許被改動(dòng), 所以應(yīng)該使用 private final 修飾 。枚舉類的使用 private final 修飾的屬性應(yīng)該在構(gòu)造器中為其賦值 。若枚舉類顯式地定義了帶參數(shù)的構(gòu)造器, 則在列出枚舉值時(shí)也必須對(duì)應(yīng)的 傳入?yún)?shù) 。① 自定義枚舉類#
通過(guò)自己寫(xiě)一個(gè)自定義的類來(lái)實(shí)現(xiàn)自定義枚舉類 。
自定義枚舉類的實(shí)現(xiàn):
私有化類的構(gòu)造器,保證不能在類的外部創(chuàng)建其對(duì)象 。在類的內(nèi)部創(chuàng)建枚舉類的實(shí)例 。聲明為:public static final 。對(duì)象如果有實(shí)例變量,應(yīng)該聲明為private final,并在構(gòu)造器中初始化 。Demo:
② enum關(guān)鍵字定義枚舉類通過(guò)使用enum關(guān)鍵字,和一些簡(jiǎn)便的規(guī)則,更方便枚舉類的創(chuàng)建
說(shuō)明:
enum 枚舉類是繼承 java.lang.Enum 類的,所以其中如果不重寫(xiě) toString 使用的是 java.lang.Enum 中的 toString,不會(huì)輸出內(nèi)存地址,而是會(huì)打印對(duì)象名enum 枚舉類的實(shí)現(xiàn):
使用 enum 聲明類為枚舉類 。在枚舉類的開(kāi)頭首先定義枚舉類中所需要的對(duì)象 。枚舉類對(duì)實(shí)例化枚舉類的對(duì)象做了簡(jiǎn)化只需要使用 對(duì)象名(參數(shù)···) 就可以完成實(shí)例化,如:PRING(“春天”, “春暖花開(kāi)”), WINTER(“冬天”, “冰天雪地”);多個(gè)對(duì)象用 “,” 隔開(kāi),最后一個(gè)以 “;” 結(jié)尾如果沒(méi)有屬性,可以去掉括號(hào),如:PRING, WINTER;其余規(guī)則均與自定義枚舉類相同 。Demo:
③ enum 枚舉類的方法
values() :返回枚舉類型的對(duì)象數(shù)組 。該方法可以很方便地遍歷所有的 枚舉值 。valueOf(String str) :可以把一個(gè)字符串轉(zhuǎn)為對(duì)應(yīng)的枚舉類對(duì)象 。要求字符 串必須是枚舉類對(duì)象的“名字” 。如不是,會(huì)有運(yùn)行時(shí)異常:IllegalArgumentException 。toString():返回當(dāng)前枚舉類對(duì)象常量的名稱 。Demo:(枚舉類使用上面代碼的枚舉類Season1)
④ enum 枚舉類實(shí)現(xiàn)接口enum 枚舉類可以像正常類那樣實(shí)現(xiàn)接口并重寫(xiě)接口中的方法
但是 enum 枚舉類還有其獨(dú)特的實(shí)現(xiàn)接口的方法, 接口類中的每個(gè)對(duì)象都可以獨(dú)自重寫(xiě)實(shí)現(xiàn)接口的方法
enum 對(duì)象特有的實(shí)現(xiàn)接口的方法 :
對(duì)象名(構(gòu)造器參數(shù)){ 需要重寫(xiě)的方法 }, 如:Demo:
二、注解從 JDK 5.0 開(kāi)始, Java 增加了對(duì)元數(shù)據(jù)(MetaData) 的支持, 也就是 Annotation(注解)Annotation 其實(shí)就是代碼里的特殊標(biāo)記, 這些標(biāo)記可以在編譯, 類加 載, 運(yùn)行時(shí)被讀取, 并執(zhí)行相應(yīng)的處理 。通過(guò)使用 Annotation, 程序員 可以在不改變?cè)羞壿嫷那闆r下, 在源文件中嵌入一些補(bǔ)充信息 。代碼分析工具、開(kāi)發(fā)工具和部署工具可以通過(guò)這些補(bǔ)充信息進(jìn)行驗(yàn)證 或者進(jìn)行部署 。Annotation 可以像修飾符一樣被使用, 可用于修飾包,類, 構(gòu)造器, 方 法, 成員變量, 參數(shù), 局部變量的聲明, 這些信息被保存在 Annotation 的 “name=value” 對(duì)中 。在JavaSE中,注解的使用目的比較簡(jiǎn)單,例如標(biāo)記過(guò)時(shí)的功能,忽略警告等 。在JavaEE/Android中注解占據(jù)了更重要的角色,例如 用來(lái)配置應(yīng)用程序的任何切面,代替JavaEE舊版中所遺留的繁冗 代碼和XML配置等 。未來(lái)的開(kāi)發(fā)模式都是基于注解的,JPA是基于注解的,Spring2.5以 上都是基于注解的,Hibernate3.x以后也是基于注解的,現(xiàn)在的 Struts2有一部分也是基于注解的了,注解是一種趨勢(shì),一定程度上 可以說(shuō):框架 = 注解 + 反射 + 設(shè)計(jì)模式 。使用 Annotation 時(shí)要在其前面增加 @ 符號(hào), 并把該 Annotation 當(dāng)成 一個(gè)修飾符使用 。用于修飾它支持的程序元素① 生成文檔相關(guān)注解
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 講解centos7安裝圖形化界面 centos可視化界面切換
- java判斷一個(gè)字符是否是數(shù)字 java截取字符串前幾位
- 鋼琴入門指法教程 5種基本演奏指法講解
- 學(xué)習(xí)Java開(kāi)發(fā)比男生更占優(yōu)勢(shì)! 學(xué)java好嗎
- ai轉(zhuǎn)成cdr格式講解 cdr可以直接打開(kāi)ai文件嗎
- jvm設(shè)置堆內(nèi)存參數(shù) java heap space解決方法
- 講解b站等級(jí)升級(jí)規(guī)則 b站怎么提升等級(jí)經(jīng)驗(yàn)
- 講解jquery循環(huán)遍歷數(shù)組 jquery遍歷元素的方法
- 講述java泛型的好處 java的泛型方法怎么寫(xiě)
- 衣帽間設(shè)計(jì)圖軟件講解 衣帽間裝修設(shè)計(jì)案例
