一、枚舉類型的基本概念
枚舉類型是Java中一個非常重要的數據類型,它可以允許我們將一組常量打包成一個單獨的類型,並且可以保證常量的類型一致性以及安全性。枚舉類型是Java 1.5版本中引入的新特性,它為我們解決了很多使用常量的問題。
枚舉類型是一種特殊的類,它可以包含常量、變量、方法和構造函數等元素。枚舉類型中的每一個元素都稱之為一個枚舉常量,每個枚舉常量都是該枚舉類型的一個實例。枚舉常量必須是該枚舉類型中聲明過的,如果枚舉類型中沒有聲明過該常量,則會拋出編譯時錯誤。
//定義一個簡單的枚舉類型
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
二、枚舉類型的常用方法
枚舉類型提供了一些常用的方法,可以方便我們處理枚舉類型的數據。
1. values()
values()方法返回枚舉類型中的所有枚舉常量,它返回的數組的順序與聲明枚舉常量時的順序一致。
//使用values()方法獲取枚舉類型中的所有枚舉常量
Weekday[] weekdays = Weekday.values();
for (Weekday weekday : weekdays) {
System.out.println(weekday);
}
2. valueOf()
valueOf()方法根據指定的字符串返回相應的枚舉常量,如果字符串與枚舉類型中的常量不匹配,則會拋出IllegalArgumentException異常。
//使用valueOf()方法獲取枚舉類型中指定的枚舉常量
Weekday monday = Weekday.valueOf("MONDAY");
System.out.println(monday);
3. name()
name()方法返回枚舉常量的名稱,與聲明枚舉常量時使用的名稱一致。
//使用name()方法獲取枚舉常量的名稱 Weekday tuesday = Weekday.TUESDAY; System.out.println(tuesday.name());
三、枚舉類型的高級使用
除了基本的使用方法,枚舉類型還有一些比較高級的用法。
1. 枚舉類型實現接口
枚舉類型同樣可以實現一個或多個接口,從而為每個枚舉常量提供不同的實現,這樣可以保證每個枚舉常量的功能都不一樣。
//定義一個實現接口的枚舉類型
public enum Weekday implements Runnable {
MONDAY("星期一") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",去上班啦!");
}
},
TUESDAY("星期二") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",努力工作中!");
}
},
WEDNESDAY("星期三") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",想想周末的計劃吧!");
}
},
THURSDAY("星期四") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",加油加油!");
}
},
FRIDAY("星期五") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",周末就快到了!");
}
},
SATURDAY("星期六") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",休息一下!");
}
},
SUNDAY("星期日") {
@Override
public void run() {
System.out.println("今天是" + this.getDesc() + ",再多休息一會兒!");
}
};
private String desc;
Weekday(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
}
2. 枚舉類型的構造函數
枚舉類型的構造函數只能使用private修飾符,這是為了防止在枚舉類型中新建枚舉常量。同時,枚舉類型的構造函數可以接受一些參數,從而為每個枚舉常量提供不同的屬性值。
//定義一個帶有參數的枚舉類型
public enum Size {
SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");
private String abbreviation;
Size(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
}
3. 枚舉類型定義抽象方法
枚舉類型可以定義抽象方法,並要求每個枚舉常量必須實現該方法,從而讓每個枚舉常量都具備一些共性的方法。
//定義一個抽象方法的枚舉類型
public enum Gender {
MALE {
@Override
public void printGender() {
System.out.println("Male");
}
},
FEMALE {
@Override
public void printGender() {
System.out.println("Female");
}
};
public abstract void printGender();
}
四、總結
枚舉類型是Java中一個非常實用的數據類型,它可以有效地處理常量的問題,使得代碼更加易讀易懂。枚舉類型的基本用法非常簡單,但是在一些特殊情況下,枚舉類型還可以做出一些更加高級的操作,為我們的代碼提供更多的功能和靈活性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/159584.html
微信掃一掃
支付寶掃一掃