Java Enums
Enums
An enum
คือ "คลาส" พิเศษที่แสดงถึงกลุ่มของ
ค่าคงที่ (ตัวแปรที่ไม่สามารถเปลี่ยนแปลงได้ เช่นfinal
ตัวแปร)
ในการสร้าง ให้enum
ใช้enum
คีย์เวิร์ด (แทนที่จะเป็นคลาสหรืออินเตอร์เฟส) และแยกค่าคงที่ด้วยเครื่องหมายจุลภาค โปรดทราบว่าควรเป็นอักษรตัวพิมพ์ใหญ่:
ตัวอย่าง
enum Level {
LOW,
MEDIUM,
HIGH
}
คุณสามารถเข้าถึงenum
ค่าคงที่ด้วย รูปแบบ จุด :
Level myVar = Level.MEDIUM;
Enumย่อมาจาก "enumerations" ซึ่งหมายถึง "รายการเฉพาะ"
Enum ภายในคลาส
คุณยังสามารถมีenum
ชั้นเรียนภายใน:
ตัวอย่าง
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
ผลลัพธ์จะเป็น:
MEDIUM
Enum ในคำสั่งเปลี่ยน
Enum มักใช้ในswitch
คำสั่งเพื่อตรวจสอบค่าที่เกี่ยวข้อง:
ตัวอย่าง
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
ผลลัพธ์จะเป็น:
Medium level
วนรอบ Enum
ประเภท enum มีvalues()
เมธอด ซึ่งจะคืนค่าอาร์เรย์ของค่าคงที่ enum ทั้งหมด วิธีนี้มีประโยชน์เมื่อคุณต้องการวนซ้ำค่าคงที่ของ enum:
ตัวอย่าง
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
ผลลัพธ์จะเป็น:
LOW
MEDIUM
HIGH
ความแตกต่างระหว่าง Enums และ Classes
enum
กระป๋องเหมือนกับ a มีclass
คุณลักษณะและวิธีการ ข้อแตกต่างเพียงอย่างเดียวคือค่าคงที่ enum คือpublic
และstatic
( final
ไม่สามารถเปลี่ยนแปลงได้ - ไม่สามารถแทนที่ได้)
ไม่enum
สามารถใช้เพื่อสร้างวัตถุ และไม่สามารถขยายคลาสอื่น ๆ (แต่สามารถใช้อินเทอร์เฟซได้)
ทำไมและเมื่อใดจึงควรใช้ Enums?
ใช้ enums เมื่อคุณมีค่าที่คุณรู้ว่าจะไม่เปลี่ยนแปลง เช่น เดือน วัน วัน สี สำรับไพ่ ฯลฯ