Mục đích của enum

Một phần của tài liệu Học lập trình Java qua ví dụ (Trang 56 - 58)

Chương 4: Giới thiệu về lớp Mục tiêu bài học

4.5.1Mục đích của enum

Kiểu enum được giới thiệu nhằm giúp liệt kê hiệu quả dãy các giá trị, ví dụ như biểu diễn các ngày trong tuần. Ưu điểm của kiểu enum:

 Khắc phục được việc ánh xạ giữa số và chuỗi một cách tẻ nhạt. Kiểu enum được sử dụng bằng các chuỗi thay cho các con số.

 Dùng số nguyên dùng để để thay cho kiểu liệt kê không an toàn. Chẳng hạn, biến DaysOfWeek là biến nguyên để liệt kê ngày trong tuần, chúng ta có thể gán giá trị bằng 9, như vậy là không hợp lệ. Rõ ràng, dùng số nguyên thay cho kiểu liệt kê là không an toàn. Để giải quyết các hhược điểm này người ta dùng kiểu liệt kê. Với kiểu liệt kê, chúng ta chỉ có thể gán các giá trị đã được định nghĩa trước.

Trong Java, kiểu dữ liệu enum được định nghĩa bằng tứ khóa enum. Vì các giá trị của nó là các hằng số, nên các trường của kiểu enum khai báo bằng chữ hoa. Ví dụ dưới đây khai báo biến Months thuộc kiểu enum:

Đoạn mã 6:

public enum Months { JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE,

Chương 4 Giới Thiệu về Lớp 57/114 JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER }

Kiểu enum sử dụng cú pháp khai báo như khai báo lớp, chỉ khác sử dụng từ khóa enum thay cho class và được gọi là lớp đặc biệt. Phần thân của kiểu

enum có thể khai báo các phương thức cũng như các trường. Trình biên dịch sẽ

bổ sung thêm các phương thức đặc biệt khi enum được tạo ra. Chúng ta có thể định nghĩa kiểu enum trong một tập tin riêng hoặc trong một tập tin định nghĩa các lớp. Nếu định nghĩa kiểu enum public thì phải định nghĩa trong một tập tin riêng biệt có tên trùng với tên enum.

Ví dụ dưới đây minh họa việc định nghĩa kiểu enum để biểu diễn lược đồ màu:

Đoạn mã 7:

enum ColorScheme {

Red, Blue, Green, Cyan, Magenta, Yellow, Black }

Sau khi định nghĩa kiểu enum, chúng ta có thể khai báo biến thuộc kiểu enum như sau:

ColorScheme CMYK;

Sau đó gán giá trị cho biến:

CMYK = ColorScheme.Magenta;

In ra giá trị của biến ColorSchema bằng lệnh như sau:

Kết quả sẽ là:

The color used is: Magenta

Một phần của tài liệu Học lập trình Java qua ví dụ (Trang 56 - 58)