1. 程式人生 > >Java enum枚舉的使用方法

Java enum枚舉的使用方法

fin .com 構造器 枚舉類型 方法 ont 全部 this lan

一. 出現背景:

在JDK1.5之前,我們定義常量是這種:public static final String RED = “RED”;

在JDK1.5中增加了枚舉類型,我們能夠把相關的常量分組到一個枚舉類中:

public enum Color {
	RED, GREEN, BLUE;
}

使用的時候能夠這樣:Color c = Color.RED


二. 枚舉特點:

1. 枚舉enum是一個特殊的Java類。它繼承自java.lang.Enum,繼承了非常多Enum的方法。但枚舉類是一個不能夠被繼承的final類

2. 枚舉類能夠定義在interface或class中。當然枚舉類型中有構造函數、方法、數據域:

public interface MyConstants {
	enum Color {
		RED("RED", 1), GREEN("GREEN", 2), BLUE("BLUE", 3);

		String desc;

		Integer value;

		private Color(String desc, Integer value) {
			this.desc = desc;
			this.value = value;
		}
	}

	enum Light {
		RED, GREEN, YELLOW;
	}
}

使用:MyConstants.Color.RED


3. 枚舉類中的夠早期和普通類的構造器有些不同:

(a). 構造器僅僅是在構造枚舉值的時候被調用

(b). 構造器僅僅能私有,這樣能夠保證外部代碼無法新構建枚舉類的實例


4. 全部枚舉類繼承了Enum的方法,以下是這些方法使用介紹:

(a). ordinal() 返回枚舉值在枚舉種類的順序,這個順序依據枚舉值聲明的順序

(b). compareTo() Enum實現了java.lang.Comparable接口。它返回的是兩個枚舉值的順序之差,但這兩個枚舉值必須屬於同一個枚舉類

(c). values 返回一個包括所有枚舉值的數組

(d). toString 返回枚舉常量的名稱

(e). valueOf 類似toString

(f). equals 比較兩個枚舉類對象的應用


5. 在switch中使用:

public enum Light{
	RED, GREEN, YELLOW;
}

class Test {
	public static void main(String[] args) {
		Light light = Light.RED;
		switch (light) {
		case RED:
			System.out.println("it‘s red");
			break;
		case GREEN:
			System.out.println("it‘s green");
			break;
		case YELLOW:
			System.out.println("it‘s yellow");
			break;
		}
	}
}



Java enum枚舉的使用方法