การแจงนับคลาส enum ถูกนำมาใช้ใน JDK1.5 ก่อนหน้านี้ int enum_value สุดท้ายแบบคงที่สาธารณะถูกใช้แทนคลาสการแจงนับ enum คลาสการแจงนับเป็นคลาสพิเศษที่สืบทอดคลาส java.lang.Enum ตามค่าเริ่มต้น เช่นเดียวกับคลาสทั่วไปอื่น ๆ enum ยังสามารถมีตัวแปรสมาชิก เมธอด และคอนสตรัคเตอร์ และยังสามารถใช้อินเทอร์เฟซตั้งแต่หนึ่งรายการขึ้นไปได้ ความแตกต่างคือ:
1.หากมีผู้รับเหมาต้องตกแต่งแบบส่วนตัว
2. คลาสการแจกแจงไม่สามารถรับคลาสย่อยได้
3. ทุกกรณีของคลาสแจงนับจะต้องกำหนดไว้อย่างชัดเจนในบรรทัดแรก ระบบจะเพิ่มการแก้ไขขั้นสุดท้ายแบบคงที่สาธารณะให้กับอินสแตนซ์เหล่านี้โดยอัตโนมัติ โดยที่โปรแกรมเมอร์ไม่จำเป็นต้องกำหนดอย่างชัดเจน
4. คลาสการแจงนับจัดเตรียมเมธอดค่า () เป็นค่าเริ่มต้นเพื่ออำนวยความสะดวกในการสำรวจค่าการแจงนับทั้งหมด
วิธีการใน enum (วิธีการจัดทำโดย Enum):
int สุดท้ายสาธารณะ CompareTo(E o) เปรียบเทียบค่าแจงนับประเภทเดียวกัน
public Final int ordinal() ส่งกลับค่าดัชนีของการแจงนับ โดยเริ่มต้นจากศูนย์สำหรับค่าแจงนับแรก
ชื่อสตริงสุดท้ายสาธารณะ () ส่งคืนชื่ออินสแตนซ์การแจงนับ
public String toString() ส่งคืนชื่อเอาต์พุตการแจงนับ
ตัวอย่างสัญญาณไฟจราจร
TrafficLight สาธารณะ { RED ("สีแดง"), YELLOW ("สีเหลือง"), GREEN ("สีเขียว"); ชื่อสตริงส่วนตัว; TrafficLight ส่วนตัว (ชื่อสตริง) { this.name = name } สตริงสาธารณะ getName () { return ชื่อ; } โมฆะสาธารณะ jude (ไฟจราจร) { สวิตช์ (ไฟ) { case RED: System.out.println ("หยุด"); System.out.println("go"); case GREEN: System.out.println("wait"); ค่าเริ่มต้น: break; } } public static void main(String[] args) { สำหรับ (TrafficLight : TrafficLight.values()) { System.out.println(e.name());