แนะนำ Enum

Input/Output และ Streams ใน Java

Alex Liu

Software Development Engineer

ทำไมต้องใช้ Enum?

  • Enum กำหนดชุดค่าที่ตายตัว
    • ตัวอย่าง: วันในสัปดาห์, รหัสสถานะ
  • ช่วยให้โค้ดอ่านง่ายและดูแลรักษาได้สะดวกขึ้น
  • ป้องกันการกำหนดค่าที่ไม่ถูกต้องให้กับตัวแปร
  • หมายเหตุ: ไม่ต้อง import เพราะ Enums เป็นส่วนหนึ่งของไลบรารีหลักของ Java
Input/Output และ Streams ใน Java

การประกาศ Enum

  • ประกาศ Enum โดยใช้คีย์เวิร์ด enum
    enum Day {
      MONDAY, 
      TUESDAY, 
      WEDNESDAY, 
      THURSDAY, 
      FRIDAY, 
      SATURDAY, 
      SUNDAY;
    }
    
  • แต่ละค่าเป็นค่าคงที่และเขียนด้วยตัวพิมพ์ใหญ่
Input/Output และ Streams ใน Java

การใช้ Enum ในโปรแกรม

  • ตัวอย่าง: กำหนดและแสดงค่า Enum
    public class EnumExample {
      public static void main(String[] args) {
          Day today = Day.WEDNESDAY; // Assigning an Enum value
          System.out.println("Today is: " + today);
      }
    }
    
  • ผลลัพธ์:
    Today is: WEDNESDAY
    
Input/Output และ Streams ใน Java

การวนลูปผ่านค่าใน Enum

  • ใช้ .values() เพื่อดึงค่าทั้งหมดใน Enum
  • ใช้ .ordinal() เพื่อคืนค่าตำแหน่งของ element
  • นำ Day Enum ที่ประกาศไว้ก่อนหน้ามาใช้เป็นตัวอย่าง:
    for (Day d : Day.values()) {
      System.out.println(d);
      System.out.print(
      " is at index " + d.ordinal());
    }
    
  • โปรแกรมนี้จะแสดงค่าทั้งหมดที่ประกาศไว้ใน Enum:
    MONDAY is at index 0
    TUESDAY is at index 1
    WEDNESDAY is at index 2
    THURSDAY is at index 3
    FRIDAY is at index 4
    SATURDAY is at index 5
    SUNDAY is at index 6
    
Input/Output และ Streams ใน Java

Enum ที่มีเมธอด

  • Enums สามารถมีเมธอดเพื่อเพิ่มฟังก์ชันการทำงานได้
enum Status {
    SUCCESS("Operation successful"),
    ERROR("An error occurred");

    private String message;
    Status(String message) {
        this.message = message;
    }
    public String getMessage() {
        return message;
    }
}
Input/Output และ Streams ใน Java

Enum ที่มีเมธอด

  • ตัวอย่างการใช้งาน Enum ชื่อ Status
public class EnumMethodExample {
    public static void main(String[] args) {
        Status current = Status.SUCCESS;
        System.out.println("Status: " + current);
        System.out.println("Message: " + current.getMessage());
    }
}
  • ผลลัพธ์:
Status: SUCCESS
Message: Operation successful
Input/Output และ Streams ใน Java

มาฝึกกันเถอะ!

Input/Output และ Streams ใน Java

Preparing Video For Download...