1. रॅपर प्रकारांची यादी

तुम्हाला माहित आहे की Java मध्ये 8 आदिम प्रकार आहेत, जे असे प्रकार आहेत जे वर्ग नाहीत. एकीकडे, हे चांगले आहे - ते सोपे आहेत आणि कमी जागा घेतात. दुसरीकडे, कधीकधी वर्ग आपल्याला आवश्यक असतात. ते नेमके का आहे ते तुम्हाला पुढील धड्यात कळेल.

मग काय करता येईल?

जावाच्या पाचव्या आवृत्तीपासून सुरुवात करून, प्रत्येक आदिम प्रकाराला दुहेरी वर्ग मिळाला. असा प्रत्येक वर्ग विशिष्ट प्रकारच्या मूल्यासह एकच फील्ड संचयित करतो. या वर्गांना रॅपर प्रकार म्हणतात , कारण ते वर्गांमध्ये आदिम मूल्ये गुंडाळतात.

या प्रकारांची यादी येथे आहे. तुम्हाला काही माहीत आहे का?

आदिम प्रकार आवरण वर्ग
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean

आदिम प्रकारांची नावे लोअरकेस अक्षराने सुरू होतात, परंतु रॅपर वर्गांची नावे मोठ्या अक्षराने सुरू होतात. काही वर्गांची नावेही थोडी मोठी आहेत: Integerinstead of intи Characterinstead of char.

रॅपर वर्गातील सर्व वस्तू अपरिवर्तनीय ( अपरिवर्तनीय ) आहेत.

वर्गासाठी सरलीकृत कोड Integerअसे काहीतरी दिसते:

कोड नोंद
public class Integer
{
   private int value;

   Integer(int x)
   {
      this.value = x;
   }

   public int intValue()
   {
      return this.value;
   }

   public static Integer valueOf(int x)
   {
      return new Integer(x);
   }
}


व्हेरिएबल

कन्स्ट्रक्टर




पद्धत मूल्य परत करते स्थिर




पद्धत व्हेरिएबलसाठी नवीन Integerऑब्जेक्ट तयार करतेint

2. intan मध्ये रूपांतरित करणेInteger

रॅपरचे प्रकार त्यांच्या आदिम भावंडांचे समकक्ष मानले जातात: आपण सहजपणे आदिम प्रकाराशी सुसंगत रॅपर ऑब्जेक्ट तयार करू शकता.

आदिम प्रकार त्यांच्या संबंधित रॅपर प्रकारांशी कसे संवाद साधतात याचे विश्लेषण करण्यासाठी उदाहरण म्हणून int प्रकार वापरू. intan मधून an मध्ये रूपांतरित करण्याचा कोड Integerआणि त्याउलट असा दिसेल:

intएक मध्ये रूपांतरित करण्यासाठी Integer, तुम्हाला हा कोड लिहावा लागेल:

Integer name = new Integer(value);

nameव्हेरिएबलचे नाव कुठे आहे Integerआणि valueगुंडाळलेले intमूल्य आहे.

उदाहरणे:

कोड नोंद
Integer age = new Integer(18);
Integer hundred = new Integer(100);
Integer zero = new Integer(0);

Integerआणि an ला an मध्ये रूपांतरित करण्यासाठी int, तुम्हाला हा कोड लिहावा लागेल:

int name = variable.intValue();

nameव्हेरिएबलचे नाव कुठे आहे intआणि variableते ऑब्जेक्टचा संदर्भ आहे Integer.

उदाहरणे:

कोड नोंद
Integer age = new Integer(18);
int x = age.intValue();

x == 18
Integer hundred = new Integer(100);
int y = hundred.intValue();

y == 100
Integer zero = new Integer(0);
int z = zero.intValue();


z == 0
int i = 110;
Integer zero = new Integer(i);
int z = zero.intValue();

z == 110

3. ऑटोबॉक्सिंग आणि अनबॉक्सिंग

परंतु प्रकारासह साध्या ऑपरेशन देखील Integerलिहिणे सोपे नाही.

आम्ही आधी म्हटल्याप्रमाणे, Integerप्रकार अपरिवर्तनीय ( अपरिवर्तनीय ) आहे. Integerनवीन मूल्यासह ऑब्जेक्ट तयार करण्यासाठी int, आपल्याला स्पष्टपणे एक नवीन Integerऑब्जेक्ट तयार करणे आवश्यक आहे. intते म्हणाले, एखाद्या वस्तूच्या आत साठवलेल्या मूल्याचे मूल्य मिळवणे सोपे आहे Integer— फक्त intValue()पद्धत कॉल करा.

उदाहरण:

कोड वर्णन
Integer a = Integer.valueOf(5);
int b = a.intValue();
Integer c = new Integer(b + 5)
5ऑब्जेक्टमध्ये गुंडाळा ऑब्जेक्टचे मूल्य मिळवा एक नवीन ऑब्जेक्ट तयार करा (10 च्या बरोबरीचे Integer)
Integer
Integer

हा ऐवजी अवजड कोड आहे, तुम्हाला वाटत नाही का?

Java च्या निर्मात्यांना असे वाटले, म्हणून त्यांनी कंपाइलरला ही ऑपरेशन्स स्वयंचलितपणे कशी करायची हे शिकवले. inta चे a मध्ये स्वयंचलित रूपांतरास ऑटोबॉक्सिंगInteger म्हणतात (स्वयंचलितपणे मूल्य बॉक्समध्ये टाकणे), आणि उलट ऑपरेशन (अन मध्ये रूपांतरित करणे) अनबॉक्सिंग म्हणतात .Integerint

तुमचा कोड संकलक काय पाहतो
Integer a = 10;
Integer a = Integer.valueOf(10);
int b = a;
int b = a.intValue();
Integer c = a + b;
Integer c = Integer.valueOf(a.intValue() + b);

ऑटोबॉक्सिंग आणि अनबॉक्सिंगबद्दल धन्यवाद, तुम्ही व्हेरिएबलला सुरक्षितपणे नियुक्त करू शकता intआणि Integerत्याउलट. intतुम्ही आणि प्रकारांमध्ये फरक न करता कोणत्याही जटिलतेची अभिव्यक्ती लिहू शकता Integer.

उदाहरणे:

कोड कंपाइलर काय व्युत्पन्न करेल
Integer a = 5;
int b = a;
Integer c = a + b;
int d = a + b + c;
Integer a = Integer.valueOf(5);
int b = a.intValue();
Integer c = Integer.valueOf(a.intValue() + b);
int d = a.intValue() + b + c.intValue();
Integer a = 5;
int b = 5;

if (a == b)
{
   ...
}
Integer a = Integer.valueOf (5);
int b = 5;

if (a.intValue() == b)
{
   ...
}


4. रॅपर व्हेरिएबल्सची तुलना करणे

ऑटोबॉक्सिंग आणि अनबॉक्सिंग या सोप्या आणि पारदर्शक प्रक्रिया आहेत. आम्ही new Integer()आवश्यकतेनुसार विधाने वापरतो आणि intValue()आवश्यकतेनुसार पद्धत म्हणतो.

सर्व काही आपल्यासाठी छान आणि सोपे कार्य करते, प्रोग्रामर. लक्षात ठेवा की जर तुम्ही an Integerआणि an ची तुलना केली Integerतर तुलना ही मूल्यांवर आधारित नसून संदर्भावर आधारित आहे.

कोड कन्सोल आउटपुट
Integer a = 1000;
Integer b = 1000;

System.out.println(a == b);



false
Integer a = 1000;
Integer b = 1000;

System.out.println(a.equals(b));



true

aआणि व्हेरिएबल्स मूल्ये bसाठवत नाहीत int. ते वस्तूंचे संदर्भ साठवतात. याचा अर्थ त्यांची योग्यरित्या तुलना कशी करायची हे लक्षात ठेवणे महत्वाचे आहे:

चुकीचे बरोबर
Integer a = 1000;
Integer b = 1000;
if (a == b)
{
   ...
}
Integer a = 1000;
Integer b = 1000;
if (a.equals(b))
{
   ...
}