Java enum เป็นประเภทข้อมูลที่จัดเก็บรายการค่าคงที่ คุณสามารถสร้างออบเจ็กต์ enum ได้โดยใช้คีย์เวิร์ด enum ค่าคงที่แจงนับปรากฏเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคภายในวงเล็บปีกกาคู่หนึ่ง ป>
การแจงนับซึ่งย่อมาจากการแจงนับคือประเภทข้อมูลที่มีชุดค่าที่เป็นไปได้คงที่
การแจงนับจะมีประโยชน์หากคุณกำลังทำงานกับค่าที่ควรเก็บเฉพาะค่าเฉพาะที่อยู่ในรายการค่าเท่านั้น ตัวอย่างเช่น enum จะถูกใช้หากคุณต้องการจัดเก็บรายการขนาดกาแฟที่ขายในร้านค้า ป>
บทช่วยสอนนี้จะอธิบายพื้นฐานของ enum ใน Java เราจะอ้างอิงถึงตัวอย่างบางส่วนของคลาส enum ในโปรแกรม Java เพื่อช่วยคุณในการเริ่มต้น ป>
ไวยากรณ์ Java Enum
Java enum แสดงรายการของค่าคงที่ ตัวแปรที่กำหนดจากแจงนับสามารถมีค่าที่ปรากฏในแจงนับเท่านั้น Enums ช่วยให้นักพัฒนาจัดเก็บข้อมูลที่พวกเขารู้ว่าจะไม่เปลี่ยนแปลง
สมมติว่าคุณตัดสินใจว่าตัวแปร Java ที่เก็บเกรดการจ่ายเงินของพนักงานสามารถมีค่าได้เพียงค่าใดค่าหนึ่งจากห้าค่าเท่านั้น หรือคุณตัดสินใจว่าตัวแปรที่เก็บสัญญาพนักงานสามารถจัดเก็บได้เฉพาะ นอกเวลา เท่านั้น , เต็มเวลา หรือ ศูนย์ชั่วโมง ในกรณีเหล่านี้ คุณจะต้องการใช้แจงนับเพื่อจัดเก็บข้อมูล
Enums ได้รับการประกาศโดยใช้ “enum ” ประเภท ต่อไปนี้เป็นไวยากรณ์ของ “enum ” คำสำคัญ:
enum name {
VALUE1, VALUE2, VALUE3
}
มาแจกแจงไวยากรณ์นี้:
- แจกแจง บอกโปรแกรมของเราว่าเราต้องการประกาศการแจงนับ
- ชื่อ คือชื่อของแจงนับของเรา
- VALUE1, VALUE2, VALUE3 คือชุดของค่าคงที่ที่แจกแจงไว้ ค่าเหล่านี้มักจะเขียนด้วยตัวพิมพ์ใหญ่
เหตุใดจึงต้องใช้ Enums ใน Java
การใช้ enum ช่วยให้คุณสามารถแสดงอัลกอริทึมในลักษณะที่อ่านง่ายขึ้นสำหรับทั้งตัวคุณเองและคอมพิวเตอร์
การเขียนแจงนับจะบอกคอมพิวเตอร์ว่าตัวแปรสามารถมีค่าได้เพียงจำนวนที่กำหนดเท่านั้น นอกจากนี้ยังบอกคุณซึ่งเป็นผู้เขียนโค้ดด้วยว่าเป็นเช่นนั้น ซึ่งจะทำให้เข้าใจโค้ดของคุณได้ง่ายขึ้น หากคุณเห็นตัวแปรที่ใช้แจงนับ คุณจะรู้ว่าตัวแปรสามารถมีค่าได้เพียงค่าใดค่าหนึ่งจากจำนวนที่จำกัด
นอกจากนี้ enums ยังช่วยให้คุณใช้ค่าคงที่ได้อย่างมีประสิทธิภาพมากขึ้น อันที่จริง enum ถูกนำมาใช้เพื่อแทนที่ int ค่าคงที่ใน Java ซึ่งขยายหลายบรรทัดและอ่านยาก นี่คือตัวอย่างของ int แบบเก่า ค่าคงที่ใน Java:
รหัสของเราใช้เวลาห้าบรรทัดในการประกาศค่าคงที่เหล่านี้ แต่ด้วยการใช้ enum เราสามารถลดโค้ดของเราเหลือสามบรรทัดได้ ในตัวอย่างด้านล่าง เราประกาศรายการค่าคงที่แจงนับ:
class IntConstant {
public final static int ECONOMY = 1;
public final static int BUSINESS = 2;
public final static int FIRST_CLASS = 3;
}
รหัสของเราใช้เวลาห้าบรรทัดในการประกาศค่าคงที่เหล่านี้ แต่ด้วยการใช้ enum เราสามารถลดโค้ดของเราเหลือสามบรรทัดได้ ในตัวอย่างด้านล่าง เราประกาศรายการค่าคงที่แจงนับ:
class AirplaneClasses {
ECONOMY, BUSINESS, FIRST_CLASS
}
รหัสนี้ง่ายกว่าและอ่านง่ายกว่า
การประกาศ Java Enum
เรากำลังสร้างแอปที่รอให้พนักงานใช้ในการส่งคำสั่งกาแฟไปยังบาริสต้าที่ร้านกาแฟ
เมื่อบาริสต้าใส่ค่าขนาดของเครื่องดื่ม เราต้องการให้มีตัวเลือกที่เป็นไปได้เพียงสามตัวเลือกเท่านั้น ตัวเลือกเหล่านี้ได้แก่:เล็ก ปกติ และใหญ่ เราสามารถใช้แจงนับเพื่อจำกัดขนาดของเครื่องดื่มที่เป็นไปได้สำหรับตัวเลือกเหล่านั้น:
enum Sizes {
SMALL, REGULAR, LARGE
}
ในตัวอย่างนี้ เราได้ประกาศแจงนับที่เรียกว่า ขนาด ซึ่งมีสามค่าที่เป็นไปได้ ตอนนี้เราได้ประกาศ enum แล้ว เราก็สามารถอ้างอิงถึงค่าของมันในโค้ดของเราได้
ตัวอย่าง Java Enum
เรากำลังเขียนโปรแกรมพิมพ์ขนาดกาแฟที่ลูกค้าสั่งไปที่คอนโซล ค่านี้จะถูกอ่านโดยบาริสต้าที่เตรียมเครื่องดื่มของลูกค้า
เราสามารถใช้รหัสต่อไปนี้เพื่อพิมพ์ขนาดของกาแฟที่ลูกค้าสั่งไปยังคอนโซล:
enum Sizes {
SMALL, REGULAR, LARGE
}
class PrintSize {
Sizes coffeeSize;
public PrintSize(Sizes coffeeSize) {
this.coffeeSize = coffeeSize;
}
public void placeOrder() {
switch(coffeeSize) {
case SMALL:
System.out.println("This coffee should be small.");
break;
case REGULAR:
System.out.println("This coffee should be REGULAR.");
break;
case LARGE:
System.out.println("This coffee should be large.");
break;
}
}
}
class Main {
public static void main(String[] args) {
PrintSize order173 = new PrintSize(Sizes.SMALL);
order173.placeOrder();
}
}
รหัสของเราส่งคืน:
ป>
ขั้นแรก เราประกาศแจงนับที่เรียกว่าขนาด enum นี้สามารถมีได้สามค่า:SMALL, REGULAR หรือ LARGE ต่อไปเราประกาศคลาสที่เรียกว่า PrintSize คลาสนี้ยอมรับขนาดของเครื่องดื่มของลูกค้าและพิมพ์ขนาดเครื่องดื่มลงบนคอนโซล
ในโปรแกรมหลักของเรา เราประกาศวัตถุที่เรียกว่า order173 ” ซึ่งใช้คลาส PrintSize เราส่งพารามิเตอร์ Java Sizes.SMALL ผ่านโค้ดของเรา สิ่งนี้บอกให้โปรแกรมของเรากำหนดค่า SMALL ให้กับตัวแปร coffeeSize ในคลาส PrintSize
จากนั้นเราใช้ order173.placeOrder() เพื่อรันโค้ดภายใน switch case คำสั่งในคลาส PrintSize วิธีนี้จะประเมินค่าของตัวแปร "coffeeSize" โดยเทียบกับ 3 กรณี ข้อความจะถูกพิมพ์ไปยังคอนโซลโดยขึ้นอยู่กับขนาดของกาแฟที่ลูกค้าสั่ง
เราระบุว่าลูกค้าสั่งกาแฟแก้วเล็ก รหัสของเราพิมพ์ออกมาว่า “กาแฟนี้ควรมีขนาดเล็ก” ไปที่คอนโซล
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง Java switch case คุณสามารถอ่านได้ในบทช่วยสอนของเราเกี่ยวกับคำสั่ง Java switch
คลาส Java enum มีวิธีการที่กำหนดไว้ล่วงหน้าจำนวนหนึ่งซึ่งใช้ในการดึงข้อมูลและจัดการค่าที่ใช้คลาส enum ด้านล่างนี้เราได้แจกแจงวิธีการแจกแจงที่ใช้บ่อยที่สุดห้าวิธี
"Career Karma เข้ามาในชีวิตของฉันในเวลาที่ฉันต้องการมันมากที่สุด และช่วยให้ฉันเข้ากับการฝึกปฏิบัติได้อย่างรวดเร็ว หลังจากเรียนจบได้สองเดือน ฉันพบงานในฝันที่สอดคล้องกับค่านิยมและเป้าหมายในชีวิตของฉัน!"
Venus วิศวกรซอฟต์แวร์ที่ Rockbot
ค้นหาการแข่งขัน Bootcamp ของคุณ
CompareTo() เปรียบเทียบค่าคงที่ใน enum ในรูปแบบพจนานุกรม และส่งกลับค่าความแตกต่างระหว่างค่าลำดับ นี่คือตัวอย่างของ comparisonTo() ที่ใช้กับค่า enum จากตัวอย่างข้างต้น:
รหัสของเราส่งคืนความแตกต่างระหว่าง
toString() แปลงชื่อของ enum ให้เป็นสตริง นี่คือตัวอย่างของ toString() ที่ใช้ในการแปลง
รหัสของเราส่งคืน:
name() วิธีการส่งกลับชื่อที่ใช้ในการกำหนดค่าคงที่ในคลาสแจงนับ ต่อไปนี้เป็นตัวอย่างของเมธอด name() ที่ใช้ในการส่งคืนชื่อที่กำหนดของขนาดกาแฟ REGULAR:
รหัสของเราส่งคืน:
ค่า () วิธีการส่งกลับอาร์เรย์ Java ซึ่งเก็บค่าคงที่ทั้งหมดไว้ในแจงนับ นี่คือตัวอย่างของวิธีการค่า () ที่ใช้งานจริง:
valueOf() ยอมรับสตริงและส่งกลับค่าคงที่ enum ซึ่งมีชื่อเดียวกัน ดังนั้น หากเราต้องการดึงค่าคงที่ enum ด้วยชื่อ
รหัสของเราส่งคืน:
enum ย่อมาจาก enumeration คือประเภทข้อมูล Java ที่มีชุดค่าคงที่
การแจงนับมีประโยชน์หากคุณทำงานกับตัวแปรที่ควรจัดเก็บได้เพียงค่าเดียวจากช่วงค่าที่เลือก
หลังจากฝึกฝนสิ่งที่คุณได้อ่านในบทช่วยสอนนี้ คุณจะเป็นผู้เชี่ยวชาญในการใช้ enums ใน Java หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโค้ดใน Java โปรดอ่านคู่มือฉบับสมบูรณ์ของเราเกี่ยวกับวิธีเขียนโค้ดใน Java04รหัส> ป> วิธี Java Enum

เปรียบเทียบถึง()
ป> int difference = Sizes.SMALL.compareTo(Sizes.LARGE);
System.out.println(difference);
12 และ 27รหัส> สตริงตามค่าลำดับ ในกรณีนี้ โค้ดของเราส่งคืน:
ป> 31รหัส> ป> toString()
44 ค่าแจงเป็นสตริง:
ป> String large_string = LARGE.toString();
System.out.println(large_string);
ป> 57รหัส> ป> ชื่อ()
ป> String regular_name = name(REGULAR);
System.out.println(regular_name);
ป> 63รหัส> ป> ค่า()
76รหัส> ป> มูลค่าของ()
84 เราสามารถทำได้โดยใช้รหัสนี้:
ป> String regular_constant = Sizes.valueOf("REGULAR");
System.out.println(regular_constant);
ป> 94รหัส> ป> บทสรุป