在Java編程過程中,我們經常需要處理固定的常量集合。Java的枚舉類型可以非常方便地定義和使用固定的常量,從而提高代碼的可讀性、可靠性和可維護性。在本文中,我們將詳細探討Java枚舉類型enum的各種用法。
一、定義枚舉類型
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
以上代碼演示了如何定義一個簡單的枚舉類型Weekday,它包含一組固定的星期幾常量。枚舉類型的定義通常放在單獨的文件中,文件名與枚舉類型名稱相同,並以.java作為文件擴展名。
我們可以使用枚舉類型中的常量來表示枚舉集合中的元素,如:
Weekday monday = Weekday.MONDAY; Weekday tuesday = Weekday.TUESDAY; Weekday friday = Weekday.FRIDAY;
二、枚舉常量取值自定義
枚舉類型中的每個常量默認取值為其定義的順序,從0開始依次遞增。
我們可以使用構造函數來自定義枚舉常量的取值,如:
public enum Weekday {
MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);
private int value;
private Weekday(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
以上代碼演示了如何自定義枚舉常量的取值。我們可以在枚舉類型中添加構造函數和成員變數,以區分不同枚舉常量的取值。我們還可以添加get方法來獲取枚舉常量的取值。
使用自定義的枚舉常量時,可以使用get方法來獲取其取值,如:
Weekday monday = Weekday.MONDAY; int value = monday.getValue(); // 1
三、switch語句中使用枚舉類型
枚舉類型可以在switch語句中使用,如:
Weekday day = Weekday.MONDAY;
switch (day) {
case MONDAY:
System.out.println("周一");
break;
case TUESDAY:
System.out.println("周二");
break;
case WEDNESDAY:
System.out.println("周三");
break;
case THURSDAY:
System.out.println("周四");
break;
case FRIDAY:
System.out.println("周五");
break;
case SATURDAY:
System.out.println("周六");
break;
case SUNDAY:
System.out.println("周日");
break;
default:
System.out.println("非法參數");
}
以上代碼演示了如何在switch語句中使用枚舉類型。 相比於使用if-else語句,使用switch語句可以更加簡潔和易讀。
四、枚舉類型實現介面
枚舉類型可以實現介面,如:
public interface Color {
String getColor();
}
public enum ColorEnum implements Color {
RED("紅色"), GREEN("綠色"), BLUE("藍色");
private String color;
private ColorEnum(String color) {
this.color = color;
}
public String getColor() {
return this.color;
}
}
public class Test {
public static void main(String[] args) {
ColorEnum color = ColorEnum.RED;
System.out.println(color.getColor()); // 紅色
}
}
以上代碼演示了如何讓枚舉類型實現介面。相比於在每個枚舉常量中實現介面方法,讓枚舉類型實現介面可以更加簡潔和易讀。
五、枚舉類型繼承
枚舉類型可以繼承其他類或實現介面,如:
interface Color {
String getColor();
}
abstract class Shape {
abstract void draw();
}
enum Rectangle implements Shape {
RECTANGLE_1 {
void draw() {
System.out.println("畫矩形1");
}
},
RECTANGLE_2 {
void draw() {
System.out.println("畫矩形2");
}
};
}
enum ColorEnum implements Color {
RED("紅色"), GREEN("綠色"), BLUE("藍色");
private String color;
private ColorEnum(String color) {
this.color = color;
}
public String getColor() {
return this.color;
}
}
public class Test {
public static void main(String[] args) {
Rectangle.RECTANGLE_1.draw(); // 畫矩形1
Rectangle.RECTANGLE_2.draw(); // 畫矩形2
ColorEnum color = ColorEnum.RED;
System.out.println(color.getColor()); // 紅色
}
}
以上代碼演示了如何讓枚舉類型繼承其他類或實現介面。在多種類型繼承和實現介面的情況下,使用枚舉類型能夠更加簡潔和易讀。
六、總結
在本文中,我們詳細講解了Java枚舉類型enum的各種用法,包括如何定義枚舉類型、如何自定義枚舉常量取值、如何在switch語句中使用枚舉類型、如何讓枚舉類型實現介面、如何讓枚舉類型繼承其他類或實現介面等。使用枚舉類型能夠提高代碼的可讀性、可靠性和可維護性,應該在Java編程過程中得到廣泛應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279035.html
微信掃一掃
支付寶掃一掃