1.枚舉類
在某些情況下, 一個(gè)類的對象是有限而且固定的(例如:季節(jié)類, 行星類)驯妄,
這種實(shí)例有限而且固定的類, 在 Java 中被稱為枚舉類
手動實(shí)現(xiàn)枚舉類:
1. private 構(gòu)造器
2. 把這個(gè)類的所有可能實(shí)例都使用 public static final 修飾
3.提供一個(gè)靜態(tài)方法根據(jù)給定的特定參數(shù)返回相應(yīng)的實(shí)例
2.枚舉類和普通類的區(qū)別
JDK 1.5 新增的 enum 關(guān)鍵字用于定義枚舉類
枚舉類和普通類的區(qū)別:
1.使用 enum 定義的枚舉類默認(rèn)繼承了 java.lang.Enum 類
2.枚舉類的構(gòu)造器只能使用 private 訪問控制符
3.枚舉類的所有實(shí)例必須在枚舉類中顯式列出(, 分隔 ; 結(jié)尾). 列出的實(shí)例系統(tǒng)會自動添加 4.public static final 修飾
5.所有的枚舉類都提供了一個(gè) values 方法, 該方法可以很方便地遍歷所有的枚舉值
2.Enum的定義
/**
* 枚舉類型:(jdk1.5以后出現(xiàn)的類型)
*/
enum Score{
A,B,C,D,E;
}
3.帶有構(gòu)造方法的枚舉
/**
* 枚舉類型:(jdk1.5以后出現(xiàn)的類型)
* A (100-90) B(89-80) C(79-70) D(69-60) E(59-0)
*/
enum Score{
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-0");
private String result;//分?jǐn)?shù)段
//private Score(){};
/**
* 有參數(shù)的構(gòu)造方法
*/
private Score(String result){
this.result = result;
}
public String getResult(){
return result;
}
}
4.得到枚舉值所有的數(shù)值
/**
* 得到枚舉中所有值:每個(gè)枚舉類型都有一個(gè)values()方法
*/
Score[] arr =Score.values()
for (Score score : arr) {
System.out.println(score);
}
5.測試枚舉的使用
/**
* Created by bailing on 2017/8/4.
*/
public class Demo2 {
public static void main(String[] args) {
testGenderMthod(Gender.MALE);
}
public static void testGenderMthod(Gender g){
System.out.println(g.getInfo());
g.speak();
}
}
//定義枚舉
enum Gender{
MALE("男"){
@Override
public void speak() {
System.out.println("男人說");
}
}, FAMILE("女"){
@Override
public void speak() {
System.out.println("女人說");
}
};
//成員遍歷
private String info;
//有參數(shù)的構(gòu)造方法
private Gender(String info){
this.info = info;
}
//成員方法
public String getInfo() {
return info;
}
//抽象方法
//枚舉類可以聲明抽象方法,但是要有具體的枚舉值去實(shí)現(xiàn)
public abstract void speak();
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者