Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การเรียนรู้ Java Enums:แนวทางปฏิบัติ

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();
 }
}

รหัสของเราส่งคืน:

04

ขั้นแรก เราประกาศแจงนับที่เรียกว่าขนาด 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

คลาส Java enum มีวิธีการที่กำหนดไว้ล่วงหน้าจำนวนหนึ่งซึ่งใช้ในการดึงข้อมูลและจัดการค่าที่ใช้คลาส enum ด้านล่างนี้เราได้แจกแจงวิธีการแจกแจงที่ใช้บ่อยที่สุดห้าวิธี

การเรียนรู้ Java Enums:แนวทางปฏิบัติ

"Career Karma เข้ามาในชีวิตของฉันในเวลาที่ฉันต้องการมันมากที่สุด และช่วยให้ฉันเข้ากับการฝึกปฏิบัติได้อย่างรวดเร็ว หลังจากเรียนจบได้สองเดือน ฉันพบงานในฝันที่สอดคล้องกับค่านิยมและเป้าหมายในชีวิตของฉัน!"

Venus วิศวกรซอฟต์แวร์ที่ Rockbot

ค้นหาการแข่งขัน Bootcamp ของคุณ

เปรียบเทียบถึง()

CompareTo() เปรียบเทียบค่าคงที่ใน enum ในรูปแบบพจนานุกรม และส่งกลับค่าความแตกต่างระหว่างค่าลำดับ นี่คือตัวอย่างของ comparisonTo() ที่ใช้กับค่า enum จากตัวอย่างข้างต้น:

int difference = Sizes.SMALL.compareTo(Sizes.LARGE);
System.out.println(difference);

รหัสของเราส่งคืนความแตกต่างระหว่าง 12 และ 27 สตริงตามค่าลำดับ ในกรณีนี้ โค้ดของเราส่งคืน:

31

toString()

toString() แปลงชื่อของ enum ให้เป็นสตริง นี่คือตัวอย่างของ toString() ที่ใช้ในการแปลง 44 ค่าแจงเป็นสตริง:

String large_string = LARGE.toString();
System.out.println(large_string);

รหัสของเราส่งคืน:

57

ชื่อ()

name() วิธีการส่งกลับชื่อที่ใช้ในการกำหนดค่าคงที่ในคลาสแจงนับ ต่อไปนี้เป็นตัวอย่างของเมธอด name() ที่ใช้ในการส่งคืนชื่อที่กำหนดของขนาดกาแฟ REGULAR:

String regular_name = name(REGULAR);
System.out.println(regular_name);

รหัสของเราส่งคืน:

63

ค่า()

ค่า () วิธีการส่งกลับอาร์เรย์ Java ซึ่งเก็บค่าคงที่ทั้งหมดไว้ในแจงนับ นี่คือตัวอย่างของวิธีการค่า () ที่ใช้งานจริง:

76

มูลค่าของ()

valueOf() ยอมรับสตริงและส่งกลับค่าคงที่ enum ซึ่งมีชื่อเดียวกัน ดังนั้น หากเราต้องการดึงค่าคงที่ enum ด้วยชื่อ 84 เราสามารถทำได้โดยใช้รหัสนี้:

String regular_constant = Sizes.valueOf("REGULAR");
System.out.println(regular_constant);

รหัสของเราส่งคืน:

94

บทสรุป

enum ย่อมาจาก enumeration คือประเภทข้อมูล Java ที่มีชุดค่าคงที่

การแจงนับมีประโยชน์หากคุณทำงานกับตัวแปรที่ควรจัดเก็บได้เพียงค่าเดียวจากช่วงค่าที่เลือก

หลังจากฝึกฝนสิ่งที่คุณได้อ่านในบทช่วยสอนนี้ คุณจะเป็นผู้เชี่ยวชาญในการใช้ enums ใน Java หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโค้ดใน Java โปรดอ่านคู่มือฉบับสมบูรณ์ของเราเกี่ยวกับวิธีเขียนโค้ดใน Java