枚舉類型在C#或C++,java,VB等一些計算機編程語言中是一種基本數據類型而不是構造數據類型,而在C語言等計算機編程語言中是一種構造數據類型 。 它用於聲明一組命名的常數,當一個變量有幾種可能的取值時,可以將它定義爲枚舉類型。
/**
* 枚舉測試類
* @author yuxuan
*
*/
public class EnumTest {
public static void main(String[] args) {
System.out.println(EnumColorPlus1.GREEN);
System.out.println(EnumColor2.RED.getColor());
for(Operation op:Operation.values()) {
System.out.println(op.eval(2, 2));
}
}
}
/**
*
* @author yuxuan
*
*/
enum EnumColor{
YELLOW,GREEN;
}
/**
*
* @author yuxuan
*
*/
enum EnumColorPlus{
/*
當定義的枚舉變量有描述的時候,必須爲其定義屬性和對應的構造函數
*/
YELLOW("黃色"),GREEN("綠色");
private String label;
EnumColorPlus(String label) {
this.label = label;
}
}
/**
*
* @author yuxuan
*
*/
enum EnumColorPlus1{
/*
當定義的枚舉變量有描述的時候,必須爲其定義屬性和對應的構造函數
*/
YELLOW("黃色","#234323"),GREEN("綠色","#erwerwe");
private String label; //相當於黃色
private String tone; //相當於色值
public String getLabel() {
return label;
}
public String getTone() {
return tone;
}
EnumColorPlus1(String label,String tone) {
this.label = label;
this.tone = tone;
}
}
/**
*
* @author yuxuan
*
*/
enum Operation{
/**
* 帶有靜態代碼塊的可以理解爲抽象方法的實現,定義個抽線方法,在具體的屬性後用靜態代碼塊去實現
*/
PLUS {
public int eval(int a,int b) {
return a + b;
}
},
MINUS{
public int eval(int a,int b) {
return a - b;
}
},
MIULTI{
public int eval(int a,int b) {
return a * b;
}
},
DIVIDE{
public int eval(int a,int b) {
return a / b;
}
};
public abstract int eval(int a,int b);
}
/**
*
* @author yuxuan
*
*/
enum EnumColor2{
RED(1){
public String getColor() {
return "red";
}
},
YELLOW(2){
public String getColor() {
return "yellow";
}
};
private Integer color;
EnumColor2(){
}
EnumColor2(Integer color){
this.color = color;
}
//定義個一抽象方法,在上面去實現
public abstract String getColor();
}
有問題可以在下面評論,技術問題可以私聊我。