一、枚舉類型的基本概念
枚舉類型是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-tw/n/159584.html