其中red,green,black分別代表乙個color物件,是乙個color物件的例項
public enum color
測試方法
package com
.lzj
.enum1;
public class colortest
system.out
.println("********************");
/*valueof根據乙個列舉的名字獲取列舉類中列舉物件*/
color c1 = color.valueof("red");
system.out
.println("c1 : " + c1);
system.out
.println("********************=");
switch (c1)
}}
輸出結果:
c : red
class com.lzj.enum1.color
c : green
class com.lzj.enum1.color
c : black
class com.lzj.enum1.color
********************
c1 : red
********************=
red
red(「紅色」, 1)中有兩個引數,分別物件color列舉類中的name、index兩個屬性,可以通過set方法來重新設定red列舉物件中的屬性的值。
public
enum color
public string getname()
public
void
setname(string name)
public
intgetindex()
public
void
setindex(int index)
}
測試方法:
public
class colortest
color black = color.valueof("black");
system.out.println("black.getname :" + black.getname() + ";black.getindex :" + black.getindex());
}}
輸出結果:
c
.getname :紅色;c
.getindex:1c
.getname :綠色;c
.getindex:2c
.getname :黑色;c
.getindex
:3black
.getname :黑色;black
.getindex
:3
列舉類實質就是乙個普通的類演變的,可以完全當做乙個普通的類來使用,只是在定義列舉類的時候,在類中先例項出了幾個類的靜態常量。
上面的color列舉類等價下下面的color類
public
class
color
private
static
final color red = new color("紅色", 1);
private
static
final color green = new color("綠色", 2);
private
static
final color black = new color("黑色", 3);
public string getname()
public
void
setname(string name)
public
intgetindex()
public
void
setindex(int index)
}
只是把
private
static
final color red = new color("紅色", 1);
private
static
final color green = new color("綠色", 2);
private
static
final color black = new color("黑色", 3);
省略成了
red("紅色", 1), green("綠色", 2), black("黑色", 3);
然後把class關鍵字換成了enum,用法都一樣。
既然enum列舉類同普通的類一樣,只是列舉類中的列舉物件都定義成了靜態的常量物件,不能被修改列舉物件的應用位址值。但可以像普通類一樣實現介面。例2中列舉類實現介面如下
public
inte***ce info
package com.lzj.enum2;
public
enum color implements info
}, green("綠色", 2)
}, black("黑色", 3)
};private string name;
private
int index;
private
color(string name, int index)
public string getname()
public
void
setname(string name)
public
intgetindex()
public
void
setindex(int index)
}
參考部落格: 列舉類綜合應用
乙個列舉類,可以看成包括它的一些子類 列舉 的乙個類,而且列舉類的構造方法只能是私有的,如下面 以交燈為示例 1 public class test 1415 valueof 方法可以把字串轉換成相應的列舉物件 16 system.out.println light.red light.valueo...
java列舉類的應用
應用場景1 假設將學習成績分為a b c d四個等級,這只是類別很少的一種情況,例如我們的訂單日誌的情況就可能非常多 我們歸納這些常量資訊,所以列舉是乙個非常不錯的選擇 同時提供了一些特殊的方法供我們使用。例如 intcompareto e o 比較此列舉與指定物件的順序。classgetdecla...
列舉類 強列舉
c 11增加了列舉類和列舉結構體。舊的c 列舉型別有乙個壞處是,他們將列舉成員引入周圍的命名空間,導致了名稱衝突 enum esecondcount int esecond 3 與列舉宣告在同乙個作用域 此外,舊的c enum會隱式轉換為int,當我們不預期或不需要這樣的轉換時會導致難以察覺的錯誤 ...