जावा में एन्यूमरेशन (एनम) एक डेटाटाइप है जो स्थिर मूल्यों का एक सेट संग्रहीत करता है। आप निश्चित मानों जैसे सप्ताह में दिन, वर्ष में महीने आदि को संग्रहीत करने के लिए गणनाओं का उपयोग कर सकते हैं।
आप एनम कीवर्ड का उपयोग करके एक एन्यूमरेशन को परिभाषित कर सकते हैं, उसके बाद एन्यूमरेशन के नाम के रूप में -
enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
सरणियों की तरह, उपरोक्त उदाहरण में 0 से शुरू होने वाली संख्याओं का उपयोग करके गणना में तत्वों/स्थिरांक की पहचान की जाती है, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है, संख्याओं का उपयोग करके दिनों की पहचान की जाती है -
एन्यूमरेशन कक्षाओं के समान हैं और, आपके भीतर चर, विधियाँ और कंस्ट्रक्टर हो सकते हैं। गणना में केवल ठोस विधियों की अनुमति है।
कक्षा का विस्तार करना
सभी एन्यूमरेशन आंतरिक रूप से एनम नामक एक वर्ग का विस्तार करते हैं जो सभी भाषा एन्यूमरेशन प्रकारों का आधार वर्ग है। चूंकि जावा एकाधिक वंशानुक्रम का समर्थन नहीं करता है, यदि आप ऐसा करने का प्रयास करते हैं तो आप गणना के साथ किसी अन्य वर्ग का विस्तार नहीं कर सकते हैं, एक संकलन समय त्रुटि उत्पन्न होगी।
उदाहरण
निम्नलिखित जावा स्निपेट में हमारे पास नमूना नाम वाला एक वर्ग है और हमने स्कूटर नामक एक एनम प्रकार बनाया है और नमूना वर्ग का विस्तार करने का प्रयास किया है।
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