1. रैपर प्रकारों की सूची
आप जानते हैं कि जावा में 8 आदिम प्रकार हैं, जो ऐसे प्रकार हैं जो वर्ग नहीं हैं। एक ओर, यह अच्छा है - वे सरल हैं और बहुत कम जगह लेते हैं। दूसरी ओर, कभी-कभी कक्षाएं वही होती हैं जिनकी हमें आवश्यकता होती है। आपको अगले पाठ में पता चलेगा कि वास्तव में ऐसा क्यों है।
तो क्या कर सकते हैं?
जावा के पांचवें संस्करण से शुरू होकर, प्रत्येक आदिम प्रकार ने एक जुड़वां वर्ग प्राप्त किया। ऐसा प्रत्येक वर्ग एक विशिष्ट प्रकार के मान के साथ एक एकल फ़ील्ड संग्रहीत करता है। इन वर्गों को आवरण प्रकार कहा जाता है , क्योंकि वे कक्षाओं में आदिम मूल्यों को लपेटते हैं।
यहाँ इस प्रकार की एक सूची है। क्या आप किसी को जानते हैं?
आदिम प्रकार | आवरण वर्ग |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
प्रिमिटिव टाइप के नाम लोअरकेस लेटर से शुरू होते हैं, लेकिन रैपर क्लासेस के नाम अपरकेस लेटर से शुरू होते हैं। कुछ वर्ग के नाम थोड़े लंबे भी हैं: Integer
вmesto int
и Character
вmesto char
।
आवरण वर्ग की सभी वस्तुएँ अपरिवर्तनीय ( अपरिवर्तनीय ) हैं।
वर्ग के लिए सरलीकृत कोड Integer
कुछ इस तरह दिखता है:
कोड | टिप्पणी |
---|---|
|
वेरिएबल कंस्ट्रक्टर विधि एक मान लौटाती है स्थैतिक विधि एक चर Integer के लिए एक नई वस्तु बनाती हैint |
2. एक को int
एक में बदलनाInteger
रैपर प्रकारों को उनके आदिम भाई-बहनों के समकक्ष माना जाता है: आप आसानी से एक रैपर ऑब्जेक्ट बना सकते हैं जो एक आदिम प्रकार से मेल खाती है।
आइए एक उदाहरण के रूप में int प्रकार का उपयोग यह विश्लेषण करने के लिए करें कि आदिम प्रकार उनके संबंधित आवरण प्रकार के साथ कैसे इंटरैक्ट करते हैं। int
एक से एक और इसके विपरीत परिवर्तित करने के लिए कोड Integer
इस तरह दिखेगा:
int
a को a में बदलने के लिए Integer
, आपको यह कोड लिखना होगा:
Integer name = new Integer(value);
कहाँ name
एक चर का नाम है Integer
, और value
लिपटे int
मूल्य है।
उदाहरण:
कोड | टिप्पणी |
---|---|
|
|
|
|
|
और a को Integer
a में बदलने के लिए int
, आपको यह कोड लिखना होगा:
int name = variable.intValue();
कहाँ name
एक चर का नाम है int
, और एक वस्तु variable
के लिए एक संदर्भ है ।Integer
उदाहरण:
कोड | टिप्पणी |
---|---|
|
|
|
|
|
|
|
|
3. ऑटोबॉक्सिंग और अनबॉक्सिंग
लेकिन Integer
टाइप के साथ सरल ऑपरेशन भी लिखना आसान नहीं है।
जैसा कि हमने पहले कहा, Integer
प्रकार अपरिवर्तनीय ( अपरिवर्तनीय ) है। Integer
एक नए मूल्य के साथ एक वस्तु बनाने के लिए int
, आपको स्पष्ट रूप से एक नई Integer
वस्तु बनाने की आवश्यकता है। int
उस ने कहा, किसी वस्तु के अंदर संग्रहीत का मान प्राप्त करना आसान है Integer
- बस intValue()
विधि को कॉल करें।
उदाहरण:
कोड | विवरण |
---|---|
|
5 किसी Integer वस्तु में लपेटें वस्तु से मूल्य प्राप्त करें एक नई वस्तु बनाएं (10 के बराबर) Integer Integer |
यह बल्कि बोझिल कोड है, क्या आपको नहीं लगता?
जावा के रचनाकारों ने ऐसा सोचा था, इसलिए उन्होंने संकलक को सिखाया कि इन कार्यों को स्वचालित रूप से कैसे किया जाए। int
a से a में स्वचालित रूपांतरण को ऑटोबॉक्सिंग (स्वचालित रूप से एक बॉक्स में मूल्य डालना) Integer
कहा जाता है , और रिवर्स ऑपरेशन (an को a में परिवर्तित करना ) को अनबॉक्सिंग कहा जाता है ।Integer
int
तुम्हारा कोड | संकलक क्या देखता है |
---|---|
|
|
|
|
|
|
ऑटोबॉक्सिंग और अनबॉक्सिंग के लिए धन्यवाद, आप int
एक वैरिएबल को सुरक्षित रूप से असाइन कर सकते हैं Integer
और इसके विपरीत। int
आप और Integer
प्रकार के बीच अंतर किए बिना किसी भी जटिलता के भाव लिख सकते हैं ।
उदाहरण:
कोड | संकलक क्या उत्पन्न करेगा |
---|---|
|
|
|
|
4. रैपर चर की तुलना करना
ऑटोबॉक्सिंग और अनबॉक्सिंग सरल और पारदर्शी प्रक्रियाएं हैं। हम new Integer()
आवश्यकतानुसार कथनों का उपयोग करते हैं, और intValue()
आवश्यकतानुसार विधि को कॉल करते हैं।
प्रोग्रामर, आपके लिए सब कुछ अच्छा और आसान काम करता है। ध्यान रखें कि यदि आप a Integer
और an की तुलना करते हैं Integer
, तो तुलना संदर्भ पर आधारित होती है न कि मूल्यों पर।
कोड | कंसोल आउटपुट |
---|---|
|
|
|
|
और चर मानों को संग्रहीत नहीं करते हैं a
। वे वस्तुओं के संदर्भों को संग्रहीत करते हैं। इसका मतलब यह है कि यह याद रखना महत्वपूर्ण है कि उनकी सही तुलना कैसे करें:b
int
गलत | सही |
---|---|
|
|
GO TO FULL VERSION