Java Enum学习总结
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
?1. 關(guān)于 Java Enum:
????學(xué)過(guò) C/C++ 等語(yǔ)言的人,應(yīng)該都對(duì) Enum 類型略知一二。 Enum 一般用來(lái)表示一組相同類型的常量。如性別、日期、月份、顏色等。 對(duì)這些屬性用常量的好處是顯而易見的,不僅可以保證單例,且比較時(shí)候可以用 ”==” 來(lái)替換 equals , 是一種好的習(xí)慣。 JDK1.5 之前沒(méi)有 Enum 這個(gè)類型,那時(shí)候一般用接口常量來(lái)替代。有了 JavaEnum 之后, 可以更貼近的表示這種常量。
2. 如何使用 Java Enum
簡(jiǎn)單的用法: JavaEnum 簡(jiǎn)單的用法一般用于代表一組常用常量,可用來(lái)代表一類相同類型的常量值。如:
性別:
public enum SexEnum {
?? male , female ;
}
顏色:
public enum Color {
?? RED , BLUE,GREEN,BLACK ;
}
枚舉對(duì)象里面的值都必須是唯一的??梢酝ㄟ^(guò) Enum 類型名直接引用該常量,如 SexEnum.male,Color.RED.
復(fù)雜用法: Java 為枚舉類型提供了一些內(nèi)置的方法,同時(shí)枚舉常量還可以有自己的方法。可以很方便的遍歷枚舉對(duì)象,看個(gè)下面的例子:
1. 代碼一
WeekDay.java :
WeekDayTest.java:
/*** @author yubing.linyb* 2009.7.29* 測(cè)試枚舉類型WeekDay.*/ public class WeekDayTest {public static void main(String args[]) {for (WeekDay day : WeekDay.values()) {System.out.println(day + "====>" + day.getDay());}WeekDay.printDay(5);} }輸出結(jié)果為: Mon====>Monday Tue====>Tuesday Wed====>Wednesday Thu====>Thursday Fri====>Friday Sat====>Saturday Sun====>Sunday Fri 3.Java Enum 原理 Java Enum類型的語(yǔ)法結(jié)構(gòu)盡管和 java 類的語(yǔ)法不一樣,應(yīng)該說(shuō)差別比較大。但是經(jīng)過(guò)編譯器編譯之后產(chǎn)生的是一個(gè)class文件。 該class文件經(jīng)過(guò)反編譯可以看到實(shí)際上是生成了一個(gè)類,該類繼承了java.lang.Enum. WeekDay (javap WeekDay 命令之后得到的內(nèi)容如下 ( 去掉了匯編代碼 ) : public final class WeekDay extends java.lang.Enum{public static final WeekDay Mon;public static final WeekDay Tue;public static final WeekDay Wed;public static final WeekDay Thu;public static final WeekDay Fri;public static final WeekDay Sat;public static final WeekDay Sun;static {};public static void printDay(int);public java.lang.String getDay();public static WeekDay[] values();public static WeekDay valueOf(java.lang.String); }
轉(zhuǎn)載于:https://my.oschina.net/amath321/blog/23742
總結(jié)
以上是生活随笔為你收集整理的Java Enum学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (译文)Flash,Silverligh
- 下一篇: Java数据库接口JDBC入门基础讲座_