Enum Java
Enum
Một enum
là một "lớp" đặc biệt đại diện cho một nhóm các hằng số (các biến không thể thay đổi, như các biến final
).
Để tạo enum
, hãy sử dụng từ khóa enum
(thay vì lớp hoặc giao diện) và phân tách các hằng số bằng dấu phẩy. Lưu ý rằng chúng phải ở dạng chữ in hoa:
Ví dụ
enum Level { LOW, MEDIUM, HIGH }
Bạn có thể truy cập các hằng số enum
bằng cú pháp dấu chấm :
Level myVar = Level.MEDIUM;
Hãy tự mình thử »Enum là viết tắt của "enumerations", có nghĩa là "được liệt kê cụ thể".
Enum bên trong một lớp
Bạn cũng có thể có một enum
bên trong một lớp:
Ví dụ
public class Main { enum Level { LOW, MEDIUM, HIGH } public static void main(String[] args) { Level myVar = Level.MEDIUM; System.out.println(myVar); } }
Đầu ra sẽ là:
MEDIUM
Enum trong câu lệnh Switch
Enum thường được sử dụng trong câu lệnh switch
để kiểm tra các giá trị tương ứng:
Ví dụ
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; } } }
Đầu ra sẽ là:
Medium level
Lặp qua Enum
Kiểu enum có phương thức values()
trả về một mảng gồm tất cả các hằng số enum. Phương pháp này hữu ích khi bạn muốn lặp qua các hằng số của một enum:
Ví dụ
for (Level myVar : Level.values()) { System.out.println(myVar); }
Đầu ra sẽ là:
LOW
MEDIUM
HIGH
Sự khác biệt giữa Enums và Class
Một enum
có thể, giống như một class
, có các thuộc tính và phương thức. Sự khác biệt duy nhất là các hằng số enum là public
, static
và final
(không thể thay đổi - không thể ghi đè).
Một enum
không thể được sử dụng để tạo các đối tượng và nó không thể mở rộng các lớp khác (nhưng nó có thể triển khai các giao diện).
Tại sao và khi nào nên sử dụng Enums?
Sử dụng enum khi bạn có các giá trị mà bạn biết sẽ không thay đổi, như ngày trong tháng, ngày, màu sắc, bộ bài, v.v.