VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String

Các Tính Năng Mới Trong Java

Giới thiệu về các tính năng mới trong java

Java 8

Biểu thức Lambda Ví dụ biểu thức Lambda với forEach() Ví dụ biểu thức Lambda với Thread Ví dụ biểu thức Lambda với Comparator Ví dụ biểu thức Lambda với Filter Collection Data Toán tử dấu 2 chấm (::) StringJoiner forEach Base64 Encode và Decode Stream trong java 8

Java 7

Binary Literal String trong mệnh đề Switch Catch nhiều ngoại lệ Lệnh try-with-resources Suy luận tạo đối tượng Generic Chữ số Java với dấu gạch dưới Các cải tiến JDBC của Java 7

Java 4/5

Varargs trong Java Enum trong java For-Each trong java Static Import trong java Autoboxing và Unboxing trong java Annotation trong java Tùy chỉnh Annotation trong java Generics trong java
Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java AWT Java Swing Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Enum trong java


Varargs trong Java
For-Each trong java

Enum trong java là một kiểu dữ liệu đặc biệt của Java được sử dụng để định nghĩa các tập hợp các hằng số. Cụ thể hơn, Java enum là một kiểu đặc biệt của lớp trong java. Một enum có thể chứa các trường, phương thức và Constructor.

Nó có thể được sử dụng để định nghĩa các ngày trong tuần (SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY), các mùa trong năm (SPRING, SUMMER, FALL, WINTER), ...

Java enum đã được thêm vào trong Java 5 cùng một số tính năng khác.


Nội dung chính

  • 1. Enum trong java được định nghĩa ở đâu?
    • Ví dụ enum trong java: định nghĩa bên trong một lớp
    • Ví dụ enum trong java: định nghĩa bên ngoài một lớp
    • Ví dụ enum trong java: định nghĩa trong một file riêng biệt
  • 2. Duyệt các phần tử trong enum
  • 3. Khởi tạo giá trị đặc biệt cho hằng số enum
  • 4. Sử dụng java enum trong câu lệnh switch
  • 5. So sánh các phần tử java enum
  • 6. Câu hỏi về enum trong java

1. Enum trong java được định nghĩa ở đâu?

Enum trong java có thể được định nghĩa bên trong hoặc bên ngoài một lớp, vì nó tương tự như lớp trong java.


Ví dụ enum trong java: định nghĩa bên trong một lớp

package vn.viettuts.javaenum;

public class EnumExample1 {
    // define enum
    enum Season {
        SPRING, SUMMER, FALL, WINTER;
    }

    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}

Kết quả:

WINTER

Ví dụ enum trong java: định nghĩa bên ngoài một lớp

package vn.viettuts.javaenum;

// define enum
enum Season {
    SPRING, SUMMER, FALL, WINTER;
}

public class EnumExample2 {
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}

Kết quả:

WINTER

Ví dụ enum trong java: định nghĩa trong một file riêng biệt

File Season.java

package vn.viettuts.javaenum;

public enum Season {
    SPRING, SUMMER, FALL, WINTER;
}

File EnumExample3.java

package vn.viettuts.javaenum;

public class EnumExample3 {
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}

Kết quả:

WINTER

2. Duyệt các phần tử trong enum

Dưới đây là ví dụ đơn giản về việc duyệt các phần tử enum trong java:

package vn.viettuts.javaenum;

public class EnumExample4 {
    // define enum Season
    public enum Season {
        SPRING, SUMMER, FALL, WINTER
    }

    public static void main(String[] args) {
        // traverse enum Season
        for (Season s : Season.values()) {
            System.out.println(s);
        }
    }
}

Kết quả:

SPRING
SUMMER
FALL
WINTER

Phương thức values() trong enum

Trình biên dịch trong java tự động thêm phương thức values() vào enum khi nó được biên dịch. Phương thức values() trả về một mảng chứa tất cả các giá trị của enum.


3. Khởi tạo giá trị đặc biệt cho hằng số enum

Các hằng số enum có giá trị ban đầu bắt đầu từ 0, 1, 2, 3, ... Nhưng chúng ta có thể khởi tạo giá trị cụ thể cho các hằng số enum bằng cách định nghĩa các trường và các Constructor. Như đã giới thiệu, Enum có thể có các trường, phương thức và Constructor.

Ví dụ 1: về định nghĩa giá trị ban đầu cho hằng số enum:

package vn.viettuts.javaenum;

public class EnumExample5 {
    // define enum Season
    enum Season {
        SPRING(5), SUMMER(10), FALL(15), WINTER(20);

        private int value;

        private Season(int value) {
            this.value = value;
        }
    }

    public static void main(String args[]) {
        for (Season s : Season.values()) {
            System.out.println(s + " " + s.value);
        }
    }
}

Kết quả:

SPRING 5
SUMMER 10
FALL 15
WINTER 20
Note: Constructor của enum trong java là private. Khi bạn không khai báo là private thì trình biên dịch sẽ tạo ra Constructor private.

Ví dụ 2: về định nghĩa nhiều giá trị cho hằng số enum:

Tạo enum PageInfo với tên file PageInfo.java:

package vn.viettuts.javaenum;

public enum PageInfo {
    // define enum with 3 variable
    PAGE_001("PAGE_001", "Login", "/login"), 
    PAGE_002("PAGE_002", "Add new user", "/addUser"), 
    PAGE_003("PAGE_003", "List user", "/listUser");
    
    private String pageID;
    private String pageTitle;
    private String pageURL;
    
    /**
     * constructor
     * 
     * @param pageID
     * @param pageTitle
     * @param pageURL
     */
    private PageInfo(String pageID, String pageTitle, String pageURL) {
        this.pageID = pageID;
        this.pageTitle = pageTitle;
        this.pageURL = pageURL;
    }
    
    // getter & setter
    public String getPageID() {
        return pageID;
    }

    public void setPageID(String pageID) {
        this.pageID = pageID;
    }

    public String getPageTitle() {
        return pageTitle;
    }

    public void setPageTitle(String pageTitle) {
        this.pageTitle = pageTitle;
    }

    public String getPageURL() {
        return pageURL;
    }

    public void setPageURL(String pageURL) {
        this.pageURL = pageURL;
    }
}

Tạo lớp Test.java để sử dụng enum đã tạo ở trên:

package vn.viettuts.javaenum;

public class Test {
    public static void main(String[] args) {
        System.out.println("pageID: " + PageInfo.PAGE_001.getPageID());
        System.out.println("pageTitle: " + PageInfo.PAGE_001.getPageTitle());
        System.out.println("pageURL: " + PageInfo.PAGE_001.getPageURL());
    }
}

Kết quả:

pageID: PAGE_001
pageTitle: Login
pageURL: /login

4. Sử dụng java enum trong câu lệnh switch

Dưới đây là ví dụ về sử dụng java enum trong câu lệnh switch:

package vn.viettuts.javaenum;

public class EnumExample5 {
    // define days of week
    enum Day {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, 
        SATURDAY, SUNDAY
    }

    public static void main(String args[]) {
        Day day = Day.SUNDAY;

        switch (day) {
        case SUNDAY:
            System.out.println("sunday");
            break;
        case MONDAY:
            System.out.println("monday");
            break;
        default:
            System.out.println("other day");
        }
    }
}

Kết quả:

sunday

5. So sánh các phần tử java enum

Bạn có thể sử dụng phương thức equals() hoặc toán tử '==' để so sánh các phần tử enum, ví dụ:

package vn.viettuts.javaenum;

public class EnumExample7 {
    // define days of week
    enum Day {
        MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
        SATURDAY, SUNDAY
    }

    public static void main(String args[]) {
        Day day1 = Day.SUNDAY;
        Day day2 = Day.MONDAY;
        // use equal() method
        if (day1.equals(Day.SUNDAY)) {
            System.out.println("sunday");
        }
        // use '==' operator
        if (day2 == Day.MONDAY) {
            System.out.println("monday");
        }
    }
}

Kết quả:

sunday
monday

6. Câu hỏi về enum trong java

Câu hỏi 1: Chúng ta có thể tạo ra thể hiện của enum bằng từ khoá new không?

Không, bởi vì nó chỉ có các Constructor private.

Câu hỏi 2: Chúng ta có thể khai báo phương thức trừu tượng trong enum không?

Có, chúng ta có thể có các phương thức trừu tượng và có thể cung cấp việc thực hiện các phương thức này.


Varargs trong Java
For-Each trong java

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml