Java Enum 枚舉的簡單使用

1、什麼是枚舉

  值類型的一種特殊形式,它從 System.Enum 繼承,併爲基礎基元類型的值提供備用名稱。枚舉類型有名稱、基礎類型和一組字段。基礎類型必須是一個內置的有符號(或無符號)整數類型(如 Byte、Int32 或 UInt64)。字段是靜態文本字段,其中的每個字段都表示常數。所使用的語言給每一個字段都分配一個基礎類型的特定值。JDK1.5引入了新的類型——枚舉。在 Java 中它雖然算個「小」功能,卻給個人開發帶來了「大」方便。java

  枚舉類型在C#或C++,java,VB等一些計算機編程語言中是一種基本數據類型而不是構造數據類型,而在C語言等計算機編程語言中是一種構造數據類型  [1]  。它用於聲明一組命名的常數,當一個變量有幾種可能的取值時,能夠將它定義爲枚舉類型。
枚舉能夠根據Integer、Long、Short或Byte中的任意一種數據類型來建立一種新型變量。這種變量能設置爲已經定義的一組之中的一個,有效地防止用戶提供無效值。該變量可以使代碼更加清晰,由於它能夠描述特定的值。
 

2、枚舉的使用

  一、枚舉的定義和簡單訪問編程

package com.test; public class EnumProgram { //得到枚舉的常量
    Signal number = Signal.FOUR; int n = 0; //定義一個方法
    public void calculation(){ switch (number){ case ONE: n=1; break; case TWO: n=2; break; case Three: n=3; break; case FOUR: n=4; break; } } public static void main(String[] args) { EnumProgram en = new EnumProgram(); System.out.println(en.n); en.calculation(); System.out.println(en.n); System.out.println(Signal.Three); } } //建立一個枚舉,裏面放了 ONE,TWO,Three,FOUR 四個常量
enum Signal{ ONE,TWO,Three,FOUR }

結果:編程語言

 

  二、向枚舉中添加方法ide

package com.test; public class EnumProgram { public static void main(String[] args) { //使用
 System.out.println(Color.BULE.getName()); System.out.println(Color.BULE.getIndex()); System.out.println(Color.getColorName(1)); System.out.println(Color.getColorIndex("綠色")); } } //建立一個枚舉
enum Color{ RED("紅色",1),BULE("藍色",2),GREEN("綠色",3),WHITE("白色",4); private String name; private int index; //構造函數
    private Color(String name,int index){ this.name=name; this.index=index; } //枚舉方法
    public static String getColorName(int index){ for(Color c : Color.values()){ if(c.getIndex()==index){ return c.getName(); } } return null; } //枚舉方法
    public static int getColorIndex(String name){ for(Color c : Color.values()){ if(c.getName()==name){ return c.getIndex(); } } return -1; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }

結果:函數

 

   三、枚舉類繼承接口
package com.test; public class EnumProgram { public static void main(String[] args) { //使用
 Color.BULE.print(); } } //定義一個接口
interface FunRea{ void print(); //定義一個方法
} //建立一個枚舉,繼承接口
enum Color implements FunRea{ RED("紅色",1),BULE("藍色",2),GREEN("綠色",3),WHITE("白色",4); private String name; private int index; //構造函數
    private Color(String name,int index){ this.name=name; this.index=index; } //實現接口的方法
 @Override public void print() { System.out.println(this.name+" : "+this.index); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }

結果:this

相關文章
相關標籤/搜索