12/08/2018, 13:50

Tại sao nên dùng Enum?

Từ khóa Enum có lẽ rất là quen thuộc với những ai lập trình bằng ngôn ngữ Java. Được giới thiệu từ phiên bản JDK1.5, Enum là một kiểu dữ liệu đặc biệt dùng để đại diện cho các hằng số được xác định trước. Ví dụ: public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, ...

Từ khóa Enum có lẽ rất là quen thuộc với những ai lập trình bằng ngôn ngữ Java.

Được giới thiệu từ phiên bản JDK1.5, Enum là một kiểu dữ liệu đặc biệt dùng để đại diện cho các hằng số được xác định trước.

Ví dụ:

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY
}

Và khi sử dụng nó: method(I)

public EnumTest(Day day) {
    this.day = day;
}

Chúng ta thấy rằng với ví dụ trên thì "day" có kiểu được xác định là Day.

So sánh với cách biểu diễn khác dạng constant trong Java như sau:

public static final int SUNDAY = 0;
public static final int MONDAY = 1;
public static final int TUESDAY = 2;
...
public static final int SATURDAY = 6;

Và method(II)

public EnumTest(int day) {
    this.day = day;
}

Nếu nhìn qua chúng ta thấy rằng method(I) và method(II) không có nhiều khác biệt và rõ ràng là (II) dễ dùng hơn nhiều vì kiểu int rất quen thuộc.

Tuy nhiên, cách (II) không phải là "type safety" giống như cách (I), ở (II) chúng ta có thể gán giá trị int tùy ý cho "day" mà chúng có thể không có nghĩa gì.

Vì vậy, chúng ta thấy rằng với Enum chúng ta có kiểu "type safety" hơn nhiều so với cách khai báo thông thường.

Ngoài ưu điểm trên, Enum còn được biểu diễn như các class thông thường với đầy đủ methods, fields, giúp cho Enum rất linh hoạt khi sử dụng.

Trên đây là lý do tôi cho rằng Enum nên được sử dụng thay cho cách khai báo Constant thông thường. Nếu bạn đọc có ý kiến gì, làm ơn comment ở dưới, tôi rất sẵn sàng học hỏi thêm.

0