Java開發知識之Java的枚舉
Java開發知識之Java的枚舉
一丶什麽是枚舉
枚舉可以理解為就是常量,在Java中我們定義常量.都是用 final語句. C++中都是用const關鍵字.
枚舉跟C++概念都是一樣的.就是特定的常量而已.
二丶Java中的枚舉
java中的常量.一般都是final定義.但是我們講過.final定義的常量.初始化的時候可以每次給不同的值.
所以加上static 才能保證其內存不會改變.一般常量都是定義在接口中給我們使用的.
可能需要連續定義.
例如:
public final static int a = 1;
public final static int b = 2;
public final static int c = 3;
....
枚舉就是管理一組常量的一個結構而已.
據圖語法如下:
權限修飾符 enum關鍵字 枚舉名稱{
枚舉常量,
枚舉常量,
枚舉常量
}
枚舉常量的定義
枚舉名稱 常量;
具體使用如下代碼:
類代碼:
public class MyTestenum { public MyTestenum() { // TODO 自動生成的構造函數存根 } public enum NUMBER{ N_NUMBER1, N_NUMBER2, N_NUMBER3 } }
外部new對象.並且使用enum定義常量.
public static void main(String[] args) throws MyException { MyTestenum t = new MyTestenum(); NUMBER n = NUMBER.N_NUMBER1; //定義枚舉常量n,必須初始化,可以為null也可以是枚舉中的常量. switch(n) { case N_NUMBER1: System.out.println("1"); break;case N_NUMBER2: System.out.println("2"); break; case N_NUMBER3: System.out.println("3"); break; } }
可以看到.我們可以直接使用 枚舉 定義枚舉變量. 並且賦值其中一個枚舉常量.
但是我們又有疑問了. 我們的枚舉常量並沒有初始化.但是為什麽程序不出錯.而且還打印了1;
原因是. 枚舉常量.默認就是從0開始.
三丶枚舉作為方法傳遞
我們可以定義枚舉常量.規定只接受什麽類型的枚舉.
public class MyTestenum { public MyTestenum() { // TODO 自動生成的構造函數存根 } enum NUMBER{ N_NUMBER1 , N_NUMBER2 , N_NUMBER3 } public static void doit(NUMBER c) { switch(c) { case N_NUMBER1: break; case N_NUMBER2: break; case N_NUMBER3: break; } } }
使用:
public static void main(String[] args) throws MyException { MyTestenum.doit(NUMBER.N_NUMBER1); }
我們要傳入枚舉常量才可以.
四丶枚舉的高級用法
我們知道.JAVA是一個面向對象的程序. 我們定義的枚舉.其實已經默認繼承了一個類
枚舉類型可以看做一個類,其中的成員也都被默認使用 final public static 修飾了.所以枚舉名稱(變量)
其實就是一個引用.他繼承了父類.則有父類的方法可以使用.
常用方法;
代碼舉例以values()為例.遍歷枚舉成員
public static void main(String[] args) throws MyException { MyTestenum.doit(NUMBER.N_NUMBER1); NUMBER n = null; for(int i = 0; i < n.values().length;i++) { System.out.print(" " + n.values()[i]); } }
使用方法返回了一個數組. 又使用鏈式方法.調用了 length求數組成員. 下面則進行遍歷.
五丶知識總結
1.定義枚舉關鍵字
enum 名稱{成員,成員};
1.枚舉定義的成員. 默認都是 public static final 修飾的. 其成員是一個常量.且內存不可以更改.
2.枚舉方法.
枚舉可以當參數傳遞給方法使用.
3.枚舉高級用法
枚舉可以看成一個類.他的成員都是它的實例. 它集成子java.lang.Enum類. 我們可以使用方法進行遍歷.
例如values():返回枚舉數組. 可以進行遍歷枚舉.並且輸出結果.
Java開發知識之Java的枚舉