1. रॅपर प्रकारांची यादी
तुम्हाला माहित आहे की Java मध्ये 8 आदिम प्रकार आहेत, जे असे प्रकार आहेत जे वर्ग नाहीत. एकीकडे, हे चांगले आहे - ते सोपे आहेत आणि कमी जागा घेतात. दुसरीकडे, कधीकधी वर्ग आपल्याला आवश्यक असतात. ते नेमके का आहे ते तुम्हाला पुढील धड्यात कळेल.
मग काय करता येईल?
जावाच्या पाचव्या आवृत्तीपासून सुरुवात करून, प्रत्येक आदिम प्रकाराला दुहेरी वर्ग मिळाला. असा प्रत्येक वर्ग विशिष्ट प्रकारच्या मूल्यासह एकच फील्ड संचयित करतो. या वर्गांना रॅपर प्रकार म्हणतात , कारण ते वर्गांमध्ये आदिम मूल्ये गुंडाळतात.
या प्रकारांची यादी येथे आहे. तुम्हाला काही माहीत आहे का?
| आदिम प्रकार | आवरण वर्ग |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
आदिम प्रकारांची नावे लोअरकेस अक्षराने सुरू होतात, परंतु रॅपर वर्गांची नावे मोठ्या अक्षराने सुरू होतात. काही वर्गांची नावे देखील थोडी मोठी आहेत: Integerऐवजी intआणि Characterऐवजी char.
रॅपर वर्गातील सर्व वस्तू अपरिवर्तनीय ( अपरिवर्तनीय ) आहेत.
वर्गासाठी सरलीकृत कोड Integerअसे काहीतरी दिसते:
| कोड | नोंद |
|---|---|
|
व्हेरिएबल कन्स्ट्रक्टर पद्धत मूल्य परत करते स्थिर पद्धत व्हेरिएबलसाठी नवीन Integerऑब्जेक्ट तयार करतेint |
2. intan मध्ये रूपांतरित करणेInteger
रॅपरचे प्रकार त्यांच्या आदिम भावंडांचे समकक्ष मानले जातात: आपण सहजपणे आदिम प्रकाराशी सुसंगत रॅपर ऑब्जेक्ट तयार करू शकता.
आदिम प्रकार त्यांच्या संबंधित रॅपर प्रकारांशी कसे संवाद साधतात याचे विश्लेषण करण्यासाठी उदाहरण म्हणून int प्रकार वापरू. intan मधून an मध्ये रूपांतरित करण्याचा कोड Integerआणि त्याउलट असा दिसेल:
intएक मध्ये रूपांतरित करण्यासाठी Integer, तुम्हाला हा कोड लिहावा लागेल:
Integer name = new Integer(value);
nameव्हेरिएबलचे नाव कुठे आहे Integerआणि valueगुंडाळलेले intमूल्य आहे.
उदाहरणे:
| कोड | नोंद |
|---|---|
|
|
|
|
|
Integerआणि an ला a मध्ये रूपांतरित करण्यासाठी int, तुम्हाला हा कोड लिहावा लागेल:
int name = variable.intValue();
nameव्हेरिएबलचे नाव कुठे आहे intआणि variableते ऑब्जेक्टचा संदर्भ आहे Integer.
उदाहरणे:
| कोड | नोंद |
|---|---|
|
|
|
|
|
|
|
|
3. ऑटोबॉक्सिंग आणि अनबॉक्सिंग
परंतु प्रकारासह साध्या ऑपरेशन देखील Integerलिहिणे सोपे नाही.
आम्ही आधी म्हटल्याप्रमाणे, Integerप्रकार अपरिवर्तनीय ( अपरिवर्तनीय ) आहे. Integerनवीन मूल्यासह ऑब्जेक्ट तयार करण्यासाठी int, आपल्याला स्पष्टपणे एक नवीन Integerऑब्जेक्ट तयार करणे आवश्यक आहे. intते म्हणाले, एखाद्या वस्तूच्या आत साठवलेल्या मूल्याचे मूल्य मिळवणे सोपे आहे Integer— फक्त intValue()पद्धत कॉल करा.
उदाहरण:
| कोड | वर्णन |
|---|---|
|
5ऑब्जेक्टमध्ये गुंडाळा ऑब्जेक्टचे मूल्य मिळवा एक नवीन ऑब्जेक्ट तयार करा (10 च्या बरोबरीचे Integer)IntegerInteger |
हा ऐवजी अवजड कोड आहे, तुम्हाला वाटत नाही का?
Java च्या निर्मात्यांना असे वाटले, म्हणून त्यांनी कंपाइलरला ही ऑपरेशन्स स्वयंचलितपणे कशी करायची हे शिकवले. inta चे a मध्ये स्वयंचलित रूपांतरास ऑटोबॉक्सिंगInteger म्हणतात (स्वयंचलितपणे मूल्य बॉक्समध्ये टाकणे), आणि उलट ऑपरेशन (अन मध्ये रूपांतरित करणे) अनबॉक्सिंग म्हणतात .Integerint
| तुमचा कोड | संकलक काय पाहतो |
|---|---|
|
|
|
|
|
|
ऑटोबॉक्सिंग आणि अनबॉक्सिंगबद्दल धन्यवाद, तुम्ही व्हेरिएबलला सुरक्षितपणे नियुक्त करू शकता intआणि Integerत्याउलट. intतुम्ही आणि प्रकारांमध्ये फरक न करता कोणत्याही जटिलतेची अभिव्यक्ती लिहू शकता Integer.
उदाहरणे:
| कोड | कंपाइलर काय व्युत्पन्न करेल |
|---|---|
|
|
|
|
4. रॅपर व्हेरिएबल्सची तुलना करणे
ऑटोबॉक्सिंग आणि अनबॉक्सिंग या सोप्या आणि पारदर्शक प्रक्रिया आहेत. आम्ही new Integer()आवश्यकतेनुसार विधाने वापरतो आणि intValue()आवश्यकतेनुसार पद्धत म्हणतो.
सर्व काही आपल्यासाठी छान आणि सोपे कार्य करते, प्रोग्रामर. लक्षात ठेवा की जर तुम्ही an Integerआणि an ची तुलना केली Integerतर तुलना ही मूल्यांवर आधारित नसून संदर्भावर आधारित आहे.
| कोड | कन्सोल आउटपुट |
|---|---|
|
|
|
|
aआणि व्हेरिएबल्स मूल्ये bसाठवत नाहीत int. ते वस्तूंचे संदर्भ साठवतात. याचा अर्थ त्यांची योग्यरित्या तुलना कशी करायची हे लक्षात ठेवणे महत्त्वाचे आहे:
| चुकीचे | बरोबर |
|---|---|
|
|
GO TO FULL VERSION