CodeGym /Java Blog /अनियमित /जावा में रैपर क्लासेस
John Squirrels
स्तर 41
San Francisco

जावा में रैपर क्लासेस

अनियमित ग्रुप में प्रकाशित
नमस्ते! आप पहले से ही आदिम प्रकारों से अच्छी तरह परिचित हैं, और उनके साथ काफी काम किया है। प्रोग्रामिंग (और विशेष रूप से जावा) में, प्रिमिटिव के कई फायदे हैं: वे कम मेमोरी का उपयोग करते हैं (और इस प्रकार प्रोग्राम को अधिक कुशल बनाते हैं) और मूल्यों की एक स्पष्ट रूप से चित्रित सीमा होती है। हालाँकि, जावा सीखते समय, हमने पहले ही मंत्र "जावा में सब कुछ एक वस्तु है" को दोहराया है। लेकिन आदिम सीधे तौर पर उन शब्दों का खंडन करते हैं। वे वस्तुएं नहीं हैं। तो, क्या हमारा "सब कुछ एक वस्तु है" सिद्धांत झूठा है? दरअसल, ऐसा नहीं है। जावा में, प्रत्येक आदिम प्रकार का एक जुड़वां भाई, एक आवरण वर्ग होता है।

रैपर क्लास क्या है?

एक आवरण एक विशेष वर्ग है जो आंतरिक रूप से आदिम को संग्रहीत करता है। लेकिन क्योंकि यह एक वर्ग है, आप इसके उदाहरण बना सकते हैं। वे आदिम मूल्यों को आंतरिक रूप से संग्रहीत करते हैं, लेकिन फिर भी वास्तविक वस्तुएं हैं। रैपर वर्ग के नाम उनके संबंधित आदिम के नाम के समान (या बिल्कुल उसी के समान) हैं। इसलिए, उन्हें याद रखना आसान होता है।
प्रिमिटिव डेटा टाइप्स के लिए रैपर क्लासेस
आदिम डेटा प्रकार रैपर क्लासेस
int यहाँ पूर्णांक
छोटा छोटा
लंबा लंबा
बाइट बाइट
तैरना तैरना
दोहरा दोहरा
चार चरित्र
बूलियन बूलियन
रैपर ऑब्जेक्ट किसी अन्य ऑब्जेक्ट की तरह ही बनाए जाते हैं:

public static void main(String[] args) {

   Integer i = new Integer(682);
  
   Double d = new Double(2.33);
  
   Boolean b = new Boolean(false);
}
रैपर वर्ग हमें आदिम प्रकार की कमियों को कम करने देता है। सबसे स्पष्ट है कि प्रिमिटिव में विधियाँ नहीं होती हैं। उदाहरण के लिए, उनके पास toString() विधि नहीं है , इसलिए, उदाहरण के लिए, आप int को String में परिवर्तित नहीं कर सकते । लेकिन पूर्णांक आवरण वर्ग इसे आसान बनाता है।

public static void main(String[] args) {

   Integer i = new Integer(432);
  
   String s = i.toString();
}
हालाँकि, दूसरी दिशा में परिवर्तित करना पेचीदा हो सकता है। मान लें कि हमारे पास एक String है , जिसे हम निश्चित रूप से जानते हैं कि इसमें एक संख्या है। भले ही, स्ट्रिंग से संख्या निकालने और इसे किसी संख्या में बदलने के लिए आदिम int का उपयोग करने का कोई मूल तरीका नहीं है। लेकिन, हम रैपर क्लासेस के साथ कर सकते हैं।

public static void main(String[] args) {

   String s = "1166628";

   Integer i = Integer.parseInt(s);

   System.out.println(i);
}
आउटपुट:
1166628
हमने सफलतापूर्वक स्ट्रिंग से एक संख्या निकाली और इसे पूर्णांक संदर्भ चर i को सौंपा । वैसे, संदर्भों के संबंध में। आप पहले से ही जानते हैं कि तर्कों को अलग-अलग तरीकों से पारित किया जाता है: आदिम मूल्य द्वारा, और वस्तुओं द्वारा संदर्भ। आप अपने स्वयं के तरीके बनाते समय इस ज्ञान का उपयोग कर सकते हैं: उदाहरण के लिए, यदि आपकी विधि भिन्नात्मक संख्याओं का उपयोग करती है, लेकिन आपको संदर्भ द्वारा पारित करने के लिए तर्क की आवश्यकता है, तो आप डबल / फ्लोट के बजाय विधि में डबल / फ्लोट तर्क पारित कर सकते हैं । रैपर क्लास के तरीकों के अलावा, उनके स्थिर क्षेत्र भी बहुत सुविधाजनक हो सकते हैं। उदाहरण के लिए, कल्पना करें कि आपके पास निम्न कार्य हैं: अधिकतम संभव प्रदर्शित करेंint मान, न्यूनतम संभव मान के बाद। यह समस्या बल्कि बुनियादी लगती है। लेकिन Google के बिना, यह असंभव है कि आप ऐसा कर सकते हैं। लेकिन रैपर आपको ऐसे "सांसारिक कार्यों" को आसानी से संभालने की अनुमति देते हैं:

public class Main {
   public static void main(String[] args) {

       System.out.println(Integer.MAX_VALUE);
       System.out.println(Integer.MIN_VALUE);
   }
}
ये क्षेत्र आपको अधिक गंभीर कार्यों को पूरा करने से विचलित होने से बचाते हैं। इस तथ्य का जिक्र नहीं है कि 2147483647 में टाइप करना (जो कि MAX_VALUE का मान होता है) कोई छोटी उपलब्धि नहीं है! :) इसके अलावा, पिछले पाठ में, हमने बताया कि रैपर ऑब्जेक्ट अपरिवर्तनीय हैं।

public static void main(String[] args) {

   Integer a = new Integer(0);
   Integer b = new Integer(0);

   b = a;
   a = 1;
   System.out.println(b);
}
आउटपुट:
0
मूल रूप से इंगित की गई वस्तु की स्थिति नहीं बदली (क्योंकि b का मान भी बदल गया होगा)। स्ट्रिंग एस के साथ , रैपर ऑब्जेक्ट की स्थिति को बदलने के बजाय, स्मृति में एक पूरी तरह से नई वस्तु बनाई जाती है। तो, जावा के रचनाकारों ने आखिरकार भाषा में आदिम प्रकार छोड़ने का फैसला क्यों किया? चूंकि सब कुछ एक वस्तु होना चाहिए, और हमारे पास रैपर वर्ग हैं जो सब कुछ व्यक्त कर सकते हैं जो आदिम व्यक्त करते हैं, क्यों न केवल रैपर को भाषा में रखा जाए और आदिम को हटा दिया जाए? उत्तर सरल है: प्रदर्शन। आदिम प्रकारों को आदिम कहा जाता है क्योंकि उनमें वस्तुओं की "हैवीवेट" विशेषताओं की कमी होती है। हां, वस्तुओं के कई सुविधाजनक तरीके हैं, लेकिन आपको हमेशा उनकी आवश्यकता नहीं होती है। कभी-कभी, आपको केवल संख्या 33, या 2.62, या सही / गलत की आवश्यकता होती है । ऐसी स्थितियों में जहां वस्तुओं के फायदे मायने नहीं रखते हैं और कार्यक्रम के कार्य करने के लिए आवश्यक नहीं हैं, आदिम कार्य के लिए कहीं बेहतर अनुकूल हैं।
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION