การแจงนับ (enum) ใน Java เป็นประเภทข้อมูลที่เก็บชุดของค่าคงที่ คุณสามารถใช้การแจงนับเพื่อเก็บค่าคงที่ เช่น วันในสัปดาห์ เดือนในหนึ่งปี เป็นต้น
คุณสามารถกำหนดการแจงนับโดยใช้คีย์เวิร์ด enum ตามด้วยชื่อของการแจงนับเป็น −
enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
เช่นเดียวกับอาร์เรย์ องค์ประกอบ/ค่าคงที่ในการแจงนับจะถูกระบุโดยใช้ตัวเลขเริ่มต้นจาก 0 ในตัวอย่างข้างต้น วันจะถูกระบุโดยใช้ตัวเลขดังแสดงในภาพประกอบต่อไปนี้ -
การแจงนับนั้นคล้ายกับคลาส และคุณสามารถมีตัวแปร เมธอด และคอนสตรัคเตอร์ภายในได้ อนุญาตเฉพาะวิธีที่เป็นรูปธรรมเท่านั้นในการแจงนับ
ขยายชั้นเรียน
การแจงนับทั้งหมดภายในขยายคลาสที่ชื่อ Enum เป็นคลาสพื้นฐานของประเภทการแจงนับภาษาทั้งหมด เนื่องจาก Java ไม่รองรับการสืบทอดหลายรายการ คุณจึงไม่สามารถขยายคลาสอื่นด้วยการแจงนับได้ หากคุณพยายามทำเช่นนั้น จะเกิดข้อผิดพลาดในการคอมไพล์ขึ้น
ตัวอย่าง
ในตัวอย่างจาวาต่อไปนี้ เรามีคลาสที่มีชื่อ Sample และเราได้สร้างประเภท Enum ชื่อ Scooters และพยายามขยายคลาส Sample
import java.util.Scanner; class Sample { } enum Scooters extends Sample { }
ผลลัพธ์
On executing, this class generates the following compile time error. D:\>javac EnumExample.java EnumExample.java:5: error: '{' expected enum Scooters extends Sample{ ^ EnumExample.java:5: error: ',', '}', or ';' expected enum Scooters extends Sample{ ^ 2 errors