Liệt kê javascript

Kiểu enum là kiểu dữ liệu đặc biệt cho phép một biến trở thành một tập hợp các hằng số được xác định trước. Biến phải bằng một trong các giá trị đã được xác định trước cho nó. Các ví dụ phổ biến bao gồm hướng la bàn (giá trị BẮC, NAM, ĐÔNG và TÂY) và các ngày trong tuần

Vì chúng là hằng số nên tên của các trường thuộc kiểu enum được viết hoa

Trong ngôn ngữ lập trình Java, bạn định nghĩa một kiểu enum bằng cách sử dụng từ khóa enum. Ví dụ: bạn sẽ chỉ định loại enum ngày trong tuần là

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

Bạn nên sử dụng các kiểu enum bất cứ khi nào bạn cần biểu diễn một tập hợp cố định các hằng số. Điều đó bao gồm các loại enum tự nhiên chẳng hạn như các hành tinh trong hệ mặt trời của chúng ta và các tập dữ liệu nơi bạn biết tất cả các giá trị có thể có tại thời điểm biên dịch—ví dụ: các lựa chọn trên menu, cờ dòng lệnh, v.v.

Đây là một số mã chỉ cho bạn cách sử dụng enum Day được xác định ở trên

public class EnumTest {
    Day day;
    
    public EnumTest(Day day) {
        this.day = day;
    }
    
    public void tellItLikeItIs() {
        switch (day) {
            case MONDAY:
                System.out.println("Mondays are bad.");
                break;
                    
            case FRIDAY:
                System.out.println("Fridays are better.");
                break;
                         
            case SATURDAY: case SUNDAY:
                System.out.println("Weekends are best.");
                break;
                        
            default:
                System.out.println("Midweek days are so-so.");
                break;
        }
    }
    
    public static void main(String[] args) {
        EnumTest firstDay = new EnumTest(Day.MONDAY);
        firstDay.tellItLikeItIs();
        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
        thirdDay.tellItLikeItIs();
        EnumTest fifthDay = new EnumTest(Day.FRIDAY);
        fifthDay.tellItLikeItIs();
        EnumTest sixthDay = new EnumTest(Day.SATURDAY);
        sixthDay.tellItLikeItIs();
        EnumTest seventhDay = new EnumTest(Day.SUNDAY);
        seventhDay.tellItLikeItIs();
    }
}

đầu ra là

Mondays are bad.
Midweek days are so-so.
Fridays are better.
Weekends are best.
Weekends are best.

Các loại enum của ngôn ngữ lập trình Java mạnh hơn nhiều so với các đối tác của chúng trong các ngôn ngữ khác. Khai báo enum định nghĩa một lớp (được gọi là kiểu enum). Phần thân của lớp enum có thể bao gồm các phương thức và các trường khác. Trình biên dịch tự động thêm một số phương thức đặc biệt khi nó tạo một enum. Ví dụ: họ có một phương thức tĩnh

public class EnumTest {
    Day day;
    
    public EnumTest(Day day) {
        this.day = day;
    }
    
    public void tellItLikeItIs() {
        switch (day) {
            case MONDAY:
                System.out.println("Mondays are bad.");
                break;
                    
            case FRIDAY:
                System.out.println("Fridays are better.");
                break;
                         
            case SATURDAY: case SUNDAY:
                System.out.println("Weekends are best.");
                break;
                        
            default:
                System.out.println("Midweek days are so-so.");
                break;
        }
    }
    
    public static void main(String[] args) {
        EnumTest firstDay = new EnumTest(Day.MONDAY);
        firstDay.tellItLikeItIs();
        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
        thirdDay.tellItLikeItIs();
        EnumTest fifthDay = new EnumTest(Day.FRIDAY);
        fifthDay.tellItLikeItIs();
        EnumTest sixthDay = new EnumTest(Day.SATURDAY);
        sixthDay.tellItLikeItIs();
        EnumTest seventhDay = new EnumTest(Day.SUNDAY);
        seventhDay.tellItLikeItIs();
    }
}
0 trả về một mảng chứa tất cả các giá trị của enum theo thứ tự chúng được khai báo. Phương thức này thường được sử dụng kết hợp với cấu trúc for-each để lặp lại các giá trị của một kiểu enum. Ví dụ: mã này từ ví dụ lớp
public class EnumTest {
    Day day;
    
    public EnumTest(Day day) {
        this.day = day;
    }
    
    public void tellItLikeItIs() {
        switch (day) {
            case MONDAY:
                System.out.println("Mondays are bad.");
                break;
                    
            case FRIDAY:
                System.out.println("Fridays are better.");
                break;
                         
            case SATURDAY: case SUNDAY:
                System.out.println("Weekends are best.");
                break;
                        
            default:
                System.out.println("Midweek days are so-so.");
                break;
        }
    }
    
    public static void main(String[] args) {
        EnumTest firstDay = new EnumTest(Day.MONDAY);
        firstDay.tellItLikeItIs();
        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
        thirdDay.tellItLikeItIs();
        EnumTest fifthDay = new EnumTest(Day.FRIDAY);
        fifthDay.tellItLikeItIs();
        EnumTest sixthDay = new EnumTest(Day.SATURDAY);
        sixthDay.tellItLikeItIs();
        EnumTest seventhDay = new EnumTest(Day.SUNDAY);
        seventhDay.tellItLikeItIs();
    }
}
0 bên dưới lặp lại trên tất cả các hành tinh trong hệ mặt trời

for (Planet p : Planet.values()) {
    System.out.printf("Your weight on %s is %f%n",
                      p, p.surfaceWeight(mass));
}

Trong ví dụ sau,

public class EnumTest {
    Day day;
    
    public EnumTest(Day day) {
        this.day = day;
    }
    
    public void tellItLikeItIs() {
        switch (day) {
            case MONDAY:
                System.out.println("Mondays are bad.");
                break;
                    
            case FRIDAY:
                System.out.println("Fridays are better.");
                break;
                         
            case SATURDAY: case SUNDAY:
                System.out.println("Weekends are best.");
                break;
                        
            default:
                System.out.println("Midweek days are so-so.");
                break;
        }
    }
    
    public static void main(String[] args) {
        EnumTest firstDay = new EnumTest(Day.MONDAY);
        firstDay.tellItLikeItIs();
        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
        thirdDay.tellItLikeItIs();
        EnumTest fifthDay = new EnumTest(Day.FRIDAY);
        fifthDay.tellItLikeItIs();
        EnumTest sixthDay = new EnumTest(Day.SATURDAY);
        sixthDay.tellItLikeItIs();
        EnumTest seventhDay = new EnumTest(Day.SUNDAY);
        seventhDay.tellItLikeItIs();
    }
}
0 là một loại enum đại diện cho các hành tinh trong hệ mặt trời. Chúng được xác định với các thuộc tính khối lượng và bán kính không đổi

Mỗi hằng số enum được khai báo với các giá trị cho tham số khối lượng và bán kính. Các giá trị này được chuyển đến hàm tạo khi hằng số được tạo. Java yêu cầu các hằng số phải được xác định trước, trước bất kỳ trường hoặc phương thức nào. Ngoài ra, khi có các trường và phương thức, danh sách hằng số enum phải kết thúc bằng dấu chấm phẩy


Ghi chú. Hàm tạo cho một loại enum phải là gói riêng tư hoặc truy cập riêng tư. Nó tự động tạo các hằng được định nghĩa ở đầu phần thân enum. Bạn không thể tự mình gọi một hàm tạo enum

Ngoài các thuộc tính và hàm tạo của nó,

public class EnumTest {
    Day day;
    
    public EnumTest(Day day) {
        this.day = day;
    }
    
    public void tellItLikeItIs() {
        switch (day) {
            case MONDAY:
                System.out.println("Mondays are bad.");
                break;
                    
            case FRIDAY:
                System.out.println("Fridays are better.");
                break;
                         
            case SATURDAY: case SUNDAY:
                System.out.println("Weekends are best.");
                break;
                        
            default:
                System.out.println("Midweek days are so-so.");
                break;
        }
    }
    
    public static void main(String[] args) {
        EnumTest firstDay = new EnumTest(Day.MONDAY);
        firstDay.tellItLikeItIs();
        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
        thirdDay.tellItLikeItIs();
        EnumTest fifthDay = new EnumTest(Day.FRIDAY);
        fifthDay.tellItLikeItIs();
        EnumTest sixthDay = new EnumTest(Day.SATURDAY);
        sixthDay.tellItLikeItIs();
        EnumTest seventhDay = new EnumTest(Day.SUNDAY);
        seventhDay.tellItLikeItIs();
    }
}
0 còn có các phương thức cho phép bạn truy xuất lực hấp dẫn bề mặt và trọng lượng của một vật thể trên mỗi hành tinh. Đây là một chương trình mẫu lấy trọng lượng của bạn trên trái đất (theo bất kỳ đơn vị nào) và tính toán và in ra trọng lượng của bạn trên tất cả các hành tinh (trong cùng một đơn vị)