java enum java enumeration tutorial with examples
यह ट्यूटोरियल जावा एनम वर्ग और कंस्ट्रक्टर पर विस्तृत होगा। हम सीखेंगे कि विभिन्न जावा प्रोग्रामिंग उदाहरणों के माध्यम से Enum का उपयोग कैसे करें:
यह एक विशेष वर्ग है जिसका विवरण विस्तार से दिया जाएगा। जावा एनम वर्ग में एक अंतर्दृष्टि तरीकों की सूची के साथ दी जाएगी जो इसे समर्थन करती है।
जावा एनम अवधारणाओं को लागू करने वाले पर्याप्त कार्यक्रम और साक्षात्कार के दौरान पूछे जाने वाले कुछ अक्सर पूछे जाने वाले प्रश्न आपकी आसान समझ के लिए इस ट्यूटोरियल में शामिल किए गए हैं।
=> सभी के लिए जावा प्रशिक्षण श्रृंखला देखने के लिए यहां देखें।
आप क्या सीखेंगे:
जावा गणना
जावा गणन कुछ भी नहीं है, लेकिन उदाहरण चर, विधियों या निर्माणकर्ताओं की एक सूची है। ये स्थिरांक का एक समूह हैं। गणना की अवधारणा को JDK5 में पेश किया गया था। प्रत्येक गणन स्थिरांक की डिफ़ॉल्ट संपत्ति सार्वजनिक, स्थिर और अंतिम है।
enum कीवर्ड
गणना 'नाम के एक कीवर्ड का उपयोग करके बनाई गई है एनम ”।
नीचे दिया गया सिंटैक्स है जिसके साथ हम एक एन्यूमरेशन बना सकते हैं।
वाक्य - विन्यास:
enum enumerated_type_name
{{
enumerator1, enumerator2,… enumeratorN;
}
ध्यान दें: enum को केवल एक उच्च-स्तरीय वर्ग या इंटरफ़ेस के अंदर या स्थिर संदर्भ में परिभाषित किया जा सकता है। यह एक विधि के अंदर नहीं होना चाहिए।
enum उदाहरण
इस उदाहरण में, हम चार एनुमरेटर्स यानि कुदाल, दिल, हीरे और क्लब को शुरू करने जा रहे हैं, जो एक एनुमरेटेड टाइप कार्ड से संबंधित हैं।
फिर, हम इनमें से प्रत्येक प्रगणक को छापने का प्रयास करेंगे।
/* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public class A { public static void main(String() args) { /* * stored each of the enumerators in the * reference variables a1,a2,a3,a4 respectively. * note that the new keyword was not used here */ cards a1 = cards.spade; cards a2 = cards.club; cards a3 = cards.heart; cards a4 = cards.diamond; System.out.println('Enumerators are: '+ a1 + ',' + a2 + ',' + a3 + ',' + a4); } }
आउटपुट:
Enum Class
उपरोक्त उदाहरण में एक बात आपने अवश्य देखी होगी (टिप्पणियों को देखें) कि हमने a का उपयोग नहीं किया है 'नया कीवर्ड' त्वरित करते हुए। हालाँकि एन्यूमरेशन एक वर्ग Enum और कंस्ट्रक्टर्स को भी परिभाषित करते हैं, वे एक नए कीवर्ड का उपयोग नहीं करते हैं।
हम उसी तरह परिभाषित किए गए प्रगणकों का उपयोग कर सकते हैं जैसे कि आदिम। Enum एक सामान्य वर्ग है और सभी enumerations Enum को विरासत में मिला है।
वाक्य - विन्यास:
// ई गणन प्रकार है।
वर्ग Enum
जावा में Enum का उपयोग कैसे करें
आइए देखें कि जावा उदाहरणों की मदद से विभिन्न परिदृश्यों में Enum का उपयोग कैसे किया जाए:
ए क्लास के अंदर
Enum को एक कक्षा के अंदर या बाहर (enum keyword example) घोषित किया जा सकता है लेकिन किसी विधि के अंदर नहीं। यहां, हम यह प्रदर्शित करेंगे कि किसी वर्ग के अंदर एनम कैसे घोषित किया जाता है।
नीचे के उदाहरण में , हमने एक वर्ग के अंदर एक संश्लिष्टता पैदा की है और फिर हमने एक संदर्भ चर a1 की मदद से मान या प्रगणक प्राप्त किया है।
public class A { /* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public static void main(String() args) { /* * stored each of the enumerators in the * reference variables a1. * note that the new keyword was not used here */ cards a1 = cards.heart; System.out.println('Card is: '+ a1); } }
आउटपुट:
लूप्स के माध्यम से Iterating Enum
यहां, हम चर्चा करेंगे कि हम एक एनम के माध्यम से कैसे लूप कर सकते हैं। हमने चार प्रगणकों (एक वर्ग के बाहर) के साथ गणना की घोषणा की है। फिर हमने प्रत्येक लूप (एक वर्ग के अंदर) के लिए इनिशियलाइज़ किया है और एन्युमेरेटर्स के मान को लाने की कोशिश की है।
/* * created an enumeration called games * with four enumerators. */ enum games { ludo, Chess, Badminton, Cricket; } public class A { public static void main(String() args) { /* * used forEach loop and stored the value in 'index' * and printed the value of each enumerator */ System.out.println('Using for each loop'); for (games index:games.values()) { System.out.println(index); } } }
आउटपुट:
विंडोज़ में एक एपीके फ़ाइल खोलें
अगर-और में
नीचे दिए गए कार्यक्रम में, हमने तीन अलग-अलग एन्यूमरेटर्स के साथ एक एन्यूमरेशन बनाया है और फिर एन्यूमरेटर को एक निर्दिष्ट एन्यूमेरेटर्स के लिए संदर्भ चर में संग्रहीत किया है।
फिर हमने अगर कंडीशन की जाँच शुरू की है जहाँ हमने OR के साथ निर्दिष्ट दो शर्तों को लागू किया है ताकि यदि उन शर्तों में से एक को पूरा किया जाता है तो यह उस स्थिति में निर्दिष्ट स्टेटमेंट को प्रिंट करेगा।
अन्यथा, यह अन्य शर्त में निर्दिष्ट विवरण को मुद्रित करेगा।
/* * created an enumeration called players * with three enumerators. */ enum players { sachin, virat, dhoni; } public class A { public static void main(String() args) { /* * stored enumerator in reference variable a1 for * contant dhoni */ players a1 = players.dhoni; /* * Started if statement with OR condition. * If any of these conditions are met then it will * print the statement specified inside if statement */ if(a1 == players.virat || a1 == players.sachin) { System.out.println('Sachin and Virat are greatest batsmen'); } /* * if none of the above condition is met then it will * print the below specified statement */ else { System.out.println('Dhoni is the best Captain'); } } }
आउटपुट:
स्विच स्टेटमेंट में
नीचे दिए गए कार्यक्रम में, हमने चार प्रगणकों के साथ एक संलयन बनाया है। फिर, हमने संदर्भ चर में प्रगणकों में से एक को संग्रहीत किया। इसके बाद, हमने एक स्विच स्टेटमेंट को इनिशियलाइज़ किया और इनमें से प्रत्येक एन्यूमरेटर की जाँच की।
उस विशेष प्रगणक के होने पर, वह विशेष मामले में निर्दिष्ट विवरण को मुद्रित करेगा।
/* * created an enumeration called players * with four enumerators. */ enum players { sachin, dravid, virat, dhoni; } public class A { public static void main(String() args) { /* * stored enumerator in reference variable a1 for * contant dravid */ players a1 = players.dravid; /* * Started Switch Statement and if the element * matches with a1 then it will print the statement * specified in the case */ switch(a1) { // does not match case sachin: System.out.println('Sachin is best bastman ever'); break; // matches case dravid: System.out.println('Dravid is the best Test Batsman'); break; // does not match case virat: System.out.println('Virat is modern great'); break; // does not match case dhoni: System.out.println('Dhoni is the best captain ever'); break; } } }
आउटपुट:
Enum फील्ड और तरीके
Enum फ़ील्ड
यह खंड एनम क्षेत्र को विस्तार से बताएगा। हम जावा इनम में फ़ील्ड जोड़ सकते हैं और प्रत्येक एन्यूमरेटर को ये फ़ील्ड मिलते हैं। क्षेत्र मान को एनम के निर्माता को सौंपा जाना चाहिए।
नीचे के सिंटैक्स में, हम देख सकते हैं कि एक एन्यूमरेशन को तीन एन्यूमरेटर्स के साथ परिभाषित किया गया है। प्रत्येक एन्यूमरेटर के बगल में, हमने प्रकार के क्षेत्र को परिभाषित किया है। () जैसे - (3), (2) और (1) क्रमशः।
यह बताता है कि जावा एनम में एक कंस्ट्रक्टर है जो एक इंट लेता है। यह कंस्ट्रक्टर इंट फील्ड सेट करता है। जब एक एन्यूमरेटर को परिभाषित किया जाता है, तो उस इंट वैल्यू (उस एन्यूमरेटर के लिए निर्दिष्ट) को कंस्ट्रक्टर को पास किया जाता है।
वाक्य - विन्यास:
public enum A { /* * calls a contructor with value * defined on the respective enumerator */ Enumerator1(3), Enumerator2(2), Enumerator3(1) /* * semicolon needed for the last enumerator * if there is a method following it. */ ; private final int constant; private A(int constant) { this.constant = constant; } }
ध्यान दें: Enum क्षेत्र पर उदाहरण के लिए, कृपया खंड 'देखें' Enum Constructor ”।
Enum तरीके
(1) नाम ()
सार्वजनिक अंतिम स्ट्रिंग नाम () - इनवॉइसिंग कॉन्स्टेंट (अपरिवर्तित या अनलेल्ड) का नाम लौटाता है।
# 2) बराबर ()
सार्वजनिक अंतिम बूलियन बराबर (ऑब्जेक्ट अन्य) - यदि obj और अदृश्य वस्तु एक ही स्थिरांक को संदर्भित करता है, तो सही है।
# 3) स्ट्रगल करना
public String toString () - इनवॉइसिंग स्थिरांक का नाम देता है। जरूरी नहीं कि गणना के घोषणापत्र में इस्तेमाल किए गए नाम से मेल खाता हो।
# 4) क्लोन
संरक्षित अंतिम वस्तु क्लोन ()
CloneNotSupportedException को फेंकता है - इसका मतलब है कि जब क्लोन करने की कोशिश की जाती है तो एनम एक अपवाद फेंक देगा।
# 5) हैशकोड ()
सार्वजनिक अंतिम int हैशकोड () - इनवोकिंग ऑब्जेक्ट के लिए हैश कोड लौटाता है।
# 6) अंतिम रूप दें ()
संरक्षित अंतिम शून्य अंतिम () - enum वर्ग के अंतिम रूप नहीं दिए जा सकते हैं। कोई वापसी मूल्य नहीं।
# 7) तुलना ()
सार्वजनिक अंतिम int तुलना (E obj) - यह निर्दिष्ट ऑब्जेक्ट obj के साथ एनम की तुलना करता है। यदि ऑब्जेक्ट निर्दिष्ट ऑब्जेक्ट से कम है तो यह नकारात्मक रिटर्न देता है। यदि यह ऑब्जेक्ट निर्दिष्ट ऑब्जेक्ट obj से अधिक है तो यह सकारात्मक लौटाता है और यदि निर्दिष्ट ऑब्जेक्ट इस ऑब्जेक्ट के बराबर है तो यह शून्य पर वापस आता है।
# 8) getDeclaringClass
सार्वजनिक अंतिम वर्ग getDeclaringClass () - संलयन प्रकार (जिसे घोषित वर्ग के रूप में भी जाना जाता है) को लौटाता है, जिसमें से अविष्कार स्थिरांक एक सदस्य है।
# 9) क्रमिक (), मान () और मान ()
ये सभी विधियाँ पैकेज का एक हिस्सा हैं java.lang.Enum । क्रमिक () विधि स्थिरांक के अनुक्रम को स्थिरांक के क्रम के आधार पर लौटाता है।
मान () विधि गणना में मौजूद सभी मान लौटाता है। ValueOf (स्ट्रिंग) विधि इनपुट स्ट्रिंग की गणना निरंतर लौटाती है। यदि निर्दिष्ट स्ट्रिंग स्थिरांक के साथ मेल नहीं खाता है, तो यह IllegalArgumentException को फेंक देगा।
नीचे दिए गए प्रोग्रामिंग उदाहरण हैं जहां हमने एक ही उदाहरण (enum कीवर्ड उदाहरण के रूप में) का उपयोग किया है और तीनों तरीकों की अवधारणा को लागू किया है।
/* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public class A { public static void main(String() args) { /* * created an array arr() which will store the * value of the constants/enumerators declared in the enumeration */ cards arr() = cards.values(); /* * used forEach loop and stored the value in 'type' * and printed the value as well as index with the help of * ordinal() method */ for (cards type:arr) { System.out.println(type + ' occurs at ' + type.ordinal()); } /* * passed heart as an input String which matches with the * constant declared in 'cards' */ System.out.println(cards.valueOf('heart')); } }
आउटपुट:
Enum Constructor
एनुम (जैसा कि यह भी एक वर्ग है) एन्यूमरेटर्स के निर्माण के दौरान डेटा पास करने के लिए कंस्ट्रक्टर का समर्थन करता है या एनीमल स्थिरांक के रूप में भी जाना जाता है।
एक एनम कंस्ट्रक्टर की मुख्य संपत्ति यह है कि वे निजी या निजी-पैकेज हैं। इसका मतलब है कि या तो वे एक वर्ग के भीतर या एक पैकेज के भीतर सुलभ हैं।
नीचे दिए गए उदाहरण को देखते हैं। यहां हमने दोनों अर्थात् विधि और निर्माणकर्ता का उपयोग किया है। सबसे पहले, हमने 'खिलाड़ियों' के नाम से एक एन्युमरेशन बनाया है जिसमें पाँच एन्यूमरेटर और फील्ड हैं।
फिर, हमारे पास एक निर्माता और एक विधि है जो प्रत्येक खिलाड़ी या प्रगणक या एनम निरंतर द्वारा बनाए गए रनों की संख्या को लौटाएगा।
इसके बाद, हमारे पास मुख्य वर्ग है जिसमें हमने प्रत्येक एन्यूमरेटर को स्टोर करने और पुनरावृति करने के लिए मूल्यों () पद्धति के साथ प्रत्येक लूप का उपयोग किया है। साथ ही, हमने प्रत्येक खिलाड़ी द्वारा बनाए गए रनों की संख्या के लिए विधि को बुलाया है।
/* * Created enumeration players with the field. * Declared a constructor and a method to return * the number of runs scored by the players. */ enum players { dravid(10889), sachin(18426), ganguly(11363), virat(11867), dhoni(10773) ; private int runs; /* * Created enumeration players with the field. * Declared a constructor and a method to return * the number of runs scored by the players. */ enum players { dravid(10889), sachin(18426), ganguly(11363), virat(11867), dhoni(10773) ; private int runs; players(int r) { runs = r; } int getRuns() { return runs; } } /* * Used values() method to get the enumerators and a for each loop * to get the number of runs scored by each player */ public class A { public static void main(String args()) { for (players a : players.values()) System.out.println(a + ' has scored ' + a.getRuns() + ' ODI runs'); } }
आउटपुट:
बार बार पूछे जाने वाले प्रश्न
Q # 1) जावा में Iterator और Enumeration में क्या अंतर है?
उत्तर: नीचे दिए गए Iterator और Enumeration में अंतर है।
इटरेटर | गणना |
---|---|
यह एक सामान्य कर्सर है जिसका उपयोग तत्वों को पुनरावृत्त करने के लिए किया जाता है और यह सभी संग्रह वर्ग पर लागू होता है। | यह एक सामान्य कर्सर नहीं है क्योंकि यह केवल Enum जैसे विरासत वर्गों के लिए लागू है। केवल एक संग्रह कक्षा के लिए अनुमति पढ़ें। |
कुछ विधियाँ hasNext (), अगला () पुनरावृति के लिए हैं। | तरीकों में से कुछ hasMoreElements (), nextElement () पुनरावृति के लिए हैं। |
हम पुनरावृत्ति का उपयोग करके संग्रह में तत्व को निकाल सकते हैं। | हम एन्यूमरेशन का उपयोग करके संग्रह में तत्व को नहीं निकाल सकते क्योंकि यह केवल पढ़ने की अनुमति है। |
Q # 2) Enum इनहेरिटेंस का समर्थन कैसे करता है?
उत्तर: Afterall Enum भी जावा में एक वर्ग है, इसलिए इसे Inheritance का समर्थन करना होगा जो OOPS का एक मूल सिद्धांत है। सभी गणना java.lang.Enum वर्ग का विस्तार करती हैं। एक वर्ग केवल एक ही माता-पिता का विस्तार कर सकता है, Enum वर्ग किसी अन्य का विस्तार नहीं करता है।
TheString () जो Enum क्लास का एक हिस्सा है (सेक्शन Enum Method में बताया गया है) java.lang.Enum क्लास में ओवरराइड किया जाता है।
निष्कर्ष
इस ट्यूटोरियल में, हमने जहाँ भी आवश्यक हो, उपयुक्त उदाहरणों और स्पष्टीकरणों के साथ एन्यूमरेशन, एनुमरेटर्स, जावा एनम क्लास और एनम कीवर्ड पर चर्चा की है। इसके अलावा, हमने Enum क्षेत्र के साथ Enum वर्ग से जुड़े महत्वपूर्ण तरीकों की जानकारी दी है।
कंस्ट्रक्टर में एक अंतर्दृष्टि, अगर-और, स्विच और लूप के साथ एनम प्रदान की गई है।
=> स्क्रैच से जावा जानने के लिए यहां जाएं।
अनुशंसित पाठ
- उदाहरण के साथ जावा स्कैनर क्लास ट्यूटोरियल
- जावा इंटेगर एंड जावा बिगइन्टेगर क्लास विद एग्जाम्पल्स
- जावा फ्लोट ट्यूटोरियल प्रोग्रामिंग उदाहरण के साथ
- जावा वेक्टर क्या है | उदाहरणों के साथ जावा वेक्टर क्लास ट्यूटोरियल
- जावा में ट्री मैप - जावा ट्रीपैप उदाहरणों के साथ ट्यूटोरियल
- जावा डबल - प्रोग्रामिंग उदाहरणों के साथ ट्यूटोरियल
- जावा ऐरे क्लास ट्यूटोरियल - java.util.Arays क्लास उदाहरण के साथ
- सी # कॉन्सेप्ट: कंस्ट्रक्टर, डिस्ट्रक्टर, स्टेटिक क्लास, स्ट्रक्चर एंड एनम