Java enum(枚舉)
enum是在Java5中引入的新特性。
什么是enum?
enum是Java的一個(gè)關(guān)鍵字宪塔,用于表示一個(gè)固定的常用值,例如每周的天數(shù)囊拜,每年的月數(shù)等等某筐。enum是一種類型。
enum的特性:
- enum常量隱式的加上了static和final冠跷,一旦被創(chuàng)建就無(wú)法修改南誊。
- enum提供的是類型安全的。
- enum隱式的加上了values()方法蜜托,返回一個(gè)數(shù)組包含所有的enum常量抄囚。
- 兩個(gè)enum常量可以使用==或equals()方法比較。
- enum可以用在switch語(yǔ)句中橄务,就像int幔托,String。
- enum有自己的名稱空間蜂挪。
- enum可以實(shí)現(xiàn)Java接口重挑。
- 可以在enum中定義構(gòu)造器。
enum的使用
public enum Sex {
/**
* 男
*/
Man(0),
/**
* 女
*/
Woman(1);
private int _value;
public int value(){
return _value;
}
private Sex(int value) {
_value = value;
}
public static Sex valueOf(int value){
switch(value){
case 0:
return Man;
case 1:
return Woman;
default:
return null;
}
}
}
在創(chuàng)建enum常量的時(shí)候棠涮,可以指定值谬哀,但是這個(gè)時(shí)候,你需要定義一個(gè)成員變量構(gòu)造器严肪,構(gòu)造器必須是private的史煎,不然會(huì)報(bào)編譯錯(cuò)誤。
枚舉的本質(zhì)是類驳糯,常量類似于類的對(duì)象篇梭,屬性就相當(dāng)于是對(duì)象的屬性。
enum的實(shí)例化:
Sex sex = Sex.MAN;