Đen Java là kiểu dữ liệu lưu trữ danh sách các hằng số. Bạn có thể tạo một đối tượng enum bằng từ khóa enum. Các hằng số Enum xuất hiện dưới dạng danh sách được phân tách bằng dấu phẩy trong một cặp dấu ngoặc nhọn.
Một enum, viết tắt của liệt kê, là một kiểu dữ liệu có một tập hợp các giá trị có thể cố định.
Enum rất hữu ích nếu bạn đang làm việc với một giá trị chỉ nên chứa một giá trị cụ thể có trong danh sách các giá trị. Ví dụ:enum sẽ được sử dụng nếu bạn muốn lưu trữ danh sách các kích cỡ cà phê được bán tại cửa hàng.
Hướng dẫn này sẽ hướng dẫn những điều cơ bản về enum trong Java. Chúng tôi sẽ tham khảo một số ví dụ về lớp enum trong chương trình Java để giúp bạn bắt đầu.
Cú pháp Java Enum
Một enum Java đại diện cho một danh sách các hằng số. Một biến được gán từ enum chỉ có thể có giá trị xuất hiện trong enum. Enums giúp nhà phát triển lưu trữ dữ liệu mà họ biết sẽ không thay đổi.
Giả sử bạn quyết định rằng một biến Java lưu trữ điểm lương của nhân viên chỉ có thể có một trong năm giá trị. Hoặc, bạn quyết định một biến lưu trữ hợp đồng nhân viên chỉ có thể lưu trữ Bán thời gian , Toàn thời gian , hoặc Không giờ. Trong những trường hợp này, bạn sẽ muốn sử dụng enum để lưu trữ dữ liệu.
Enum được khai báo bằng cách sử dụng “enum “ gõ. Đây là cú pháp của “enum ” từ khóa:
enum name {
VALUE1, VALUE2, VALUE3
}
Hãy chia nhỏ cú pháp này:
- enum cho chương trình biết chúng ta muốn khai báo một bảng liệt kê.
- tên là tên của enum của chúng tôi.
- VALUE1, VALUE2, VALUE3 là tập hợp các giá trị không đổi trong cửa hàng enum của chúng tôi. Những giá trị này thường được viết bằng chữ hoa.
Tại sao nên sử dụng Enums trong Java?
Việc sử dụng enum cho phép bạn diễn đạt thuật toán theo cách dễ đọc hơn cho cả bạn và máy tính.
Viết một enum cho máy tính biết một biến chỉ có thể có một số giá trị cụ thể. Nó cũng cho bạn biết, người viết mã, rằng trường hợp này sẽ giúp bạn hiểu mã của mình dễ dàng hơn. Nếu bạn thấy một biến sử dụng enum, bạn biết rằng biến đó chỉ có thể có một trong số lượng giá trị giới hạn.
Ngoài ra, enum cho phép bạn sử dụng hằng số hiệu quả hơn. Trên thực tế, enum được giới thiệu để thay thế int các hằng số trong Java, kéo dài nhiều dòng và khó đọc. Đây là ví dụ về int cũ hằng số trong Java:
Mã của chúng tôi chiếm năm dòng để khai báo các hằng số này. Nhưng bằng cách sử dụng enum, chúng ta có thể giảm mã của mình xuống còn ba dòng. Trong ví dụ dưới đây, chúng ta khai báo danh sách các hằng enum:
class IntConstant {
public final static int ECONOMY = 1;
public final static int BUSINESS = 2;
public final static int FIRST_CLASS = 3;
}
Mã của chúng tôi chiếm năm dòng để khai báo các hằng số này. Nhưng bằng cách sử dụng enum, chúng ta có thể giảm mã của mình xuống còn ba dòng. Trong ví dụ dưới đây, chúng ta khai báo danh sách các hằng enum:
class AirplaneClasses {
ECONOMY, BUSINESS, FIRST_CLASS
}
Mã này đơn giản và dễ đọc hơn.
Khai báo Java Enum
Chúng tôi đang xây dựng một ứng dụng mà nhân viên phục vụ có thể sử dụng để gửi đơn đặt hàng cà phê cho nhân viên pha chế tại quán cà phê.
Khi nhân viên pha chế chèn giá trị cho kích cỡ của đồ uống, chúng tôi chỉ muốn có ba lựa chọn khả thi. Các tùy chọn này là:NHỎ, THƯỜNG XUYÊN và LỚN. Chúng ta có thể sử dụng enum để giới hạn kích thước có thể có của đồ uống đối với các tùy chọn đó:
enum Sizes {
SMALL, REGULAR, LARGE
}
Trong ví dụ này, chúng tôi đã khai báo một enum có tên là Sizes trong đó có ba giá trị có thể. Bây giờ chúng ta đã khai báo một enum, chúng ta có thể tham khảo các giá trị của nó trong mã của mình.
Ví dụ về Enum Java
Chúng tôi đang viết một chương trình in ra kích thước cà phê mà khách hàng đã đặt trên bảng điều khiển. Giá trị này sẽ được đọc bởi nhân viên pha chế chuẩn bị đồ uống cho khách hàng.
Chúng ta có thể sử dụng đoạn mã sau để in kích thước cà phê mà khách hàng đã đặt lên bảng điều khiển:
enum Sizes {
SMALL, REGULAR, LARGE
}
class PrintSize {
Sizes coffeeSize;
public PrintSize(Sizes coffeeSize) {
this.coffeeSize = coffeeSize;
}
public void placeOrder() {
switch(coffeeSize) {
case SMALL:
System.out.println("This coffee should be small.");
break;
case REGULAR:
System.out.println("This coffee should be REGULAR.");
break;
case LARGE:
System.out.println("This coffee should be large.");
break;
}
}
}
class Main {
public static void main(String[] args) {
PrintSize order173 = new PrintSize(Sizes.SMALL);
order173.placeOrder();
}
}
Mã của chúng tôi trả về:
This coffee should be small.
Đầu tiên, chúng ta khai báo một enum có tên là Sizes. Enum này có thể có ba giá trị:NHỎ, THƯỜNG XUYÊN hoặc LỚN. Tiếp theo, chúng ta khai báo một lớp có tên PrintSize. Lớp này chấp nhận kích thước đồ uống của khách hàng và in kích thước đồ uống ra bảng điều khiển.
Trong chương trình chính của chúng ta, chúng ta khai báo một đối tượng có tên order173 ," sử dụng lớp PrintSize. Chúng tôi đã chuyển tham số Java Sizes.SMALL thông qua mã của mình. Điều này cho biết chương trình của chúng tôi gán giá trị SMALL cho biến coffeeSize trong lớp PrintSize.
Sau đó chúng tôi sử dụng order173.placeOrder() để thực thi mã trong trường hợp chuyển đổi câu lệnh trong lớp PrintSize. Điều này đánh giá giá trị của biến “coffeeSize” trong ba trường hợp. Một thông báo được in ra bảng điều khiển tùy thuộc vào kích cỡ cà phê mà khách hàng đã đặt.
Chúng tôi xác định rằng khách hàng đã gọi một ly cà phê nhỏ. Mã của chúng tôi in ra:“Cà phê này phải nhỏ.” vào bảng điều khiển.
Nếu muốn tìm hiểu thêm về các câu lệnh switch case trong Java, bạn có thể đọc về chúng trong hướng dẫn của chúng tôi về câu lệnh switch Java.
Các phương thức Java Enum
Lớp enum Java bao gồm một số phương thức được xác định trước được sử dụng để truy xuất và thao tác các giá trị sử dụng lớp enum. Dưới đây chúng tôi đã chia nhỏ năm phương pháp enum được sử dụng phổ biến nhất.

"Nghề nghiệp Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi tham gia chương trình đào tạo. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với những giá trị và mục tiêu trong cuộc sống của mình!"
Venus, Kỹ sư phần mềm tại Rockbot
Tìm trận đấu Bootcamp của bạn
so sánhTo()
CompareTo() so sánh các hằng số trong một enum theo từ điển và trả về sự khác biệt giữa các giá trị thứ tự của chúng. Đây là một ví dụ về việc so sánhTo() được sử dụng với giá trị enum từ ví dụ trên của chúng tôi:
int difference = Sizes.SMALL.compareTo(Sizes.LARGE); System.out.println(difference);
Mã của chúng tôi trả về sự khác biệt giữa SMALL và LARGE chuỗi dựa trên giá trị thứ tự của chúng. Trong trường hợp này, mã của chúng tôi trả về:
-2
toString()
toString() chuyển đổi tên của enum thành chuỗi. Đây là một ví dụ về toString() được sử dụng để chuyển đổi LARGE giá trị enum thành một chuỗi:
String large_string = LARGE.toString(); System.out.println(large_string);
Mã của chúng tôi trả về:
“LARGE”
tên()
Phương thức name() trả về tên được sử dụng để định nghĩa một hằng số trong lớp enum. Đây là một ví dụ về phương thức name() được sử dụng để trả về tên đã xác định của cỡ cà phê REGULAR:
String regular_name = name(REGULAR); System.out.println(regular_name);
Mã của chúng tôi trả về:
“REGULAR”
giá trị()
Phương thức value() trả về một mảng Java lưu trữ tất cả các hằng số trong một enum. Đây là một ví dụ về phương thức value() đang hoạt động:
Sizes[] sizeList = Sizes.values();
giá trịOf()
valueOf() chấp nhận một chuỗi và trả về hằng số enum có cùng tên. Vì vậy, nếu chúng ta muốn lấy hằng số enum có tên REGULAR, chúng ta có thể làm như vậy bằng cách sử dụng mã này:
String regular_constant = Sizes.valueOf("REGULAR");
System.out.println(regular_constant);
Mã của chúng tôi trả về:
REGULAR
Kết luận
Một enum, viết tắt của kiểu liệt kê, là một kiểu dữ liệu Java có một tập hợp các giá trị cố định.
Enum rất hữu ích nếu bạn đang làm việc với các biến chỉ có khả năng lưu trữ một biến trong phạm vi giá trị đã chọn.
Sau khi thực hành những gì bạn đã đọc trong hướng dẫn này, bạn sẽ trở thành chuyên gia sử dụng enum trong Java. Để tìm hiểu thêm về cách viết mã trong Java, hãy đọc hướng dẫn đầy đủ của chúng tôi về Cách viết mã trong Java.