विषय-सूचि
रैपर क्लास (Wrapper class in Hindi)
जैसा की आप जानते हैं, जावा एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज हैं। इसका मतलब जावा में सभी प्रोग्राम क्लास और उस क्लास के ऑब्जेक्ट्स पर आधारित होते हैं। जावा प्रोग्रामिंग में प्रिमिटिव डाटा टाइप को इस्तेमाल करने हेतु उनका ऑब्जेक्ट तयार करना जरुरी होता हैं, लेकिन ऑब्जेक्ट क्रिएट करने के लिए क्लास का होना भी जरुरी हैं।
इसी समस्या को दूर करने के लिए जावा में रैपर क्लास की सुविधा उपलब्ध करायी गयी हैं। रॅपर क्लास इन प्रिमिटिव डेटा टाइप्स जैसे- इन्टिजर, करैक्टर, फ्लोट, बाइट, डबल इत्यादि को क्लास में एनकैप्सूलेट करता हैं, जिस क्लास का ऑब्जेक्ट तयार किया जा सकें।
दुसरे शब्दों में रॅपर क्लास प्रिमिटिव डेटा टाइप्स को एक क्लास में रॅप करता हैं, जिससे उन प्रिमिटिव डेटा टाइप्स का इस्तेमाल आसानी से किया जा सकें।
रैपर क्लास की जरुरत (Need of wrapper classes in Hindi)
- रैपर क्लास प्रिमिटिव डाटा टाइप्स को ऑब्जेक्ट्स में कन्वर्ट करता हैं।
- Java.util इस इन बिल्ड पैकेज में लिखे गए क्लासेज सिर्फ और सिर्फ क्लास ऑब्जेक्ट को ही हैंडल कर सकते हैं, इसी लिए रैपर क्लास का इस्तेमाल किया जाता हैं।
- अगर प्रिमिटिव डेटा टाइप्स को रैपर क्लास में रॅप नहीं किया जाएगा तो, उन डेटा टाइप्स और उन्हें पास किए गए वैल्यूज का इस्तेमाल करना मुश्किल हो जाएगा।
- जावा प्रोग्रामिंग में इस्तेमाल किए जानेवाले डेटा स्ट्रक्चर्स जैसे की ऐरे लिस्ट, वेक्टर में सिर्फ क्लास ऑब्जेक्ट्स को स्टोर किया जा सकता हैं, न की प्रिमिटिव डाटा टाइप्स को, इसीलिए रॅपर क्लास का इस्तेमाल किया जाता हैं।
- मल्टी थ्रेडिंग सिंक्रोनाइजेशन सिर्फ क्लास ऑब्जेक्ट को सपोर्ट करता हैं, इसलिए क्लास का होना जरुरी बन जाता हैं।
आसान शब्दों में, जावा प्रोग्राम में किसी भी प्रकार के ऑपरेशन का परफॉर्म करने के लिए क्लास की जरुरत होती हैं। क्योंकि प्रिमिटिव डेटा टाइप्स को प्रोग्राम में इस्तेमाल करने के लिए भी एक क्लास की जरुरत हैं, इसी लिए रैपर क्लास का इस्तेमाल किया जाता हैं। रैपर क्लास की मदत से प्रिमिटिव डेटा टाइप्स का भी ऑब्जेक्ट तयार किया जा सकता हैं।
प्रिमिटिव डेटा टाइप्स और रैपर क्लास (Primitive data types and corresponding wrapper classes)
प्रिमिटिव डेटा टाइप्स | रैपर क्लास |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
ऑटोबॉक्सिंग और अनबॉक्सिंग (Autoboxing and Unboxing in Hindi)
ऑटोबॉक्सिंग (Autoboxing in Hindi)
प्रिमिटिव डेटा टाइप्स का उनके निर्धारित रैपर क्लास में किए गए आटोमेटिक कन्वर्शन को ऑटोबॉक्सिंग कहा जाता हैं। जैसे की int इस प्रिमिटिव डेटा टाइप का कन्वर्शन (रूपांतरण) Integer इस रॅपर क्लास में किया जाना।
उदाहरण-
class Boxing
{
public static void main(String args[])
{
int a=50;
Integer a2=new Integer(a);
System.out.println(a2);
}
}
आउटपुट-
50
स्पष्टीकरण-
ऑटोबॉक्सिंग को समझने के लिए हमने ऊपर एक आसान प्रोग्राम लिखा हैं। हमने एक क्लास डिक्लेअर किया हैं, Boxing। क्लास Boxing के मेन फंक्शन में हमने, एक इन्टिजर a डिक्लेअर किया हैं, जिसे ‘50’ यह वैल्यू असाइन की हैं।
अब इन्टिजर इस प्रिमिटिव डेटा टाइप के जुड़े रॅपर क्लास जिसका नाम इन्टिजर हैं, का ऑब्जेक्ट क्रिएट किया गया हैं, और उसके कंस्ट्रक्टर को इन्टिजर वेरिएबल a पैरामीटर के तौर पर पास किया हैं। इन्टिजर क्लास के ऑब्जेक्ट a2 को इनिशियलाइज़ करने हेतु इन्टिजर वेरिएबल a को पास किया हैं।
अब, जब प्रिंटिंग फंक्शन में a2 को कॉल किया जाएगा तब, वह ऑब्जेक्ट इन्टिजर वेरिएबल की वैल्यू रीटर्न करेगा, जोकि उसे पैरामीटर के रूप में पास किए गयी हैं।
अनबॉक्सिंग (Unboxing in Hindi)
रॅपर क्लास के ऑब्जेक्ट को प्रिमिटिव डेटा टाइप में कन्वर्ट किए जाने को अनबॉक्सिंग कहा जाता हैं। अनबॉक्सिंग , ऑटोबॉक्सिंग बिलकुल विपरीत हैं। जो कार्य ऑटोबॉक्सिंग में किया जाता हैं, उसके विपरीत काम अनबॉक्सिंग में किया जाता हैं।
उदाहरण-
class Unboxing
{
public static void main(String args[])
{
Integer i=new Integer(50);
int a=i;
System।out।println(a);
}
}
आउटपुट-
50
स्पष्टीकरण-
जैसा की आप अब जान चुकें हैं, की अन बॉक्सिंग, ऑटोबॉक्सिंग के बिलकुल उल्टा हैं। ऊपर दिए गए उदाहरण में एक क्लास लिया हैं, Unboxing। इस क्लास के मेन फंक्शन में हमने इन्टिजर क्लास का एक ऑब्जेक्ट तयार किया हैं ‘i’ और कंस्ट्रक्टर को वैल्यू पास की हैं 50, जोकि ऑब्जेक्ट में स्टोर की गयी हैं।
अब हमने इस इन्टिजर क्लास के ऑब्जेक्ट को इन्टिजर जोकि एक प्रिमिटिव डेटा टाइप हैं, उसके वेरिएबल में कन्वर्ट करना हैं। इसलिए हमने एक इन्टिजर वेरिएबल लिया हैं a और उसे असाइनमेंट ऑपरेटर(=) की मदत से, ऑब्जेक्ट i को असाइन किया हैं। अब इन्टिजर वेरिएबल a में ऑब्जेक्ट i की वैल्यू स्टोर की जा चुकी हैं।
प्रोग्राम के अंत में अनबॉक्सिंग हुयी हैं, की नहीं यह जांचने के लिए जब प्रिंट फंक्शन को कॉल किया हैं और उसे a यह वेरिएबल पास किया हैं। अब जावा कम्पाइलर a की वैल्यू 50 यह प्रिंट करेगा।
सारांश(Brief summary of wrapper classes in java)
रॅपर क्लास प्रिमिटिव डेटा टाइप्स को एक क्लास में रॅप करता हैं, जिस क्लास का ऑब्जेक्ट तयार किया जा सकें। और उन प्रिमिटिव डेटा टाइप्स का इस्तेमाल आसानी से किया जा सकें।
अगर आप ठीक से देखें तो-
ऑटो बॉक्सिंग-
प्रिमिटिव डेटा टाइप को रॅपर क्लास के ऑब्जेक्ट में कन्वर्ट करता हैं।
अनबॉक्सिंग
रॅपर क्लास के ऑब्जेक्ट को प्रिमिटिव डेटा टाइप में कन्वर्ट करता हैं।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।
Thanking you for solving this doubt
your teaching method is very useful for me. my doubt is clear here.