A. java枚舉類型enum用法
用法如下:
用法一:常量 在JDK1.5之前,我們定義常量都是:public static fianl....。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法
用法六:使用介面組織枚舉
用法七:關於枚舉集合的使用
B. java怎麼聲明枚舉類型
這里我的一點小筆記你看看吧:看不明白就找找相關書籍.
※枚舉(enum):
1.Java 5 新增,是類類型,但不能使用new
不能繼承其他類,也不能作為超類,即不能擴展.但隱式繼承自java.lang.Enum類,可以實現介面.
2.枚舉包括兩個預定義方法:
public static enum-type[] values();
public static enum-type valueOf(String st); 用於for-each循環遍歷枚舉常量.
且可以用」==」來判斷兩個枚舉常量是否相等.
從Enum繼承而來三個方法:
final int ordinal() ----返回常量順序值
final int compareTo(enum-Type e) -----同一枚舉中比較順序值
final Boolean equals(enum-type e) -----同一枚舉中是否相等,相當於」==」
3.在switch表達示中case語句不需也不能加入枚舉的類型,否則會出錯.
4.枚舉是類類型,可以定義構造函數,且可以重載,同樣也可定義其他的實例方法和變數,這些每一個枚舉常量都有自己的一個副本.甚至可以定義靜態的成員.可以實現介面.
如:public enum Answer implements DoAnswer{
Perfect(10),Good(8),Common(5),Bad(2),Terrible;//枚舉常量,相當於public static Answer類型
public static int type=1; //定義一個靜態成員
private int degree; //定義一個實例成員變數
private Answer(){ //定義一個不帶參數的構造函數,注只能為private的,默認也一樣
degree=-1;
}
private Answer(int d){ //定義一個帶參數的重載構造函數
degree=d;
}
public String getProblem(){ //實現介面方法
return DoAnswer.PROBLEM;
}
public int getDegree(){ //定義一個實例成員函數
return degree;
}
public Answer getAnswer(){ //定義一個返回自身的成員函數,每一個常量都有自己的副本
return this;
}
}
C. java如何將接收到的數字自動轉換為枚舉
方式一:寫判斷
publicenumORDER{
FIRST,SECOND;
publicstaticORDERgetEnumOrder(intorder){
switch(order){
case1:
returnFIRST;
case2:
returnSECOND;
default:
returnnull;
}
}
}
在使用的地方
ORDERfirst=ORDER.getEnumOrder(1);
方式二:字元串拼接
publicenumORDER{
ORDER_1,ORDER_2;
}
在使用的地方
ORDERfirst=ORDER.valueOf("ORDER_"+1);
方式三:枚舉數組
publicenumORDER{
FIRST,SECOND;
}
在使用的地方
intorder=1;
ORDER[]orders=ORDER.values();
ORDERfirst=orders[order-1];
D. Java枚舉類型怎麼使用
舉(enum)類型是Java 5新增的特性,它是一種新的類型,允許用常量來表示特定的數據片斷,而且全部都以類型安全的形式來表示。
1、常量的使用
在JDK1.5之前,我們定義常量都是:public static fianl....。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法。
總結:
1、枚舉的本質是類,在沒有枚舉之前,仍然可以按照java最基本的編程手段來解決需要用到枚舉的地方。枚舉屏蔽了枚舉值的類型信息,不像在用public static final定義變數必須指定類型。枚舉是用來構建常量數據結構的模板,這個模板可擴展。枚舉的使用增強了程序的健壯性,比如在引用一個不存在的枚舉值的時候,編譯器會報錯。枚舉的更多用法還需要在開發中去研究創造,Java5、Java6增加了不少新的特性,技術在升級,對程序員來說就要學習,如果你熱愛java的話。否則別人用到新特性的代碼你看不懂,那才叫郁悶。
2、枚舉在Java家族中只佔了很小的一塊比重,所以我在項目中用枚舉的地方不是很多,畢竟,一個項目是很多人開發維護的,用一個陌生的東西,會給其他的同事造成閱讀困難。所以常量大都是用public static final 來定義的。