Wrapper-klasser i Java

De omslagsklass i Java tillhandahåller mekanismen att omvandla primitiv till objekt och objekt till primitiv .

Sedan J2SE 5.0, autoboxning och unboxing funktionen konverterar primitiver till objekt och objekt till primitiver automatiskt. Den automatiska omvandlingen av primitiv till ett objekt kallas autoboxning och vice versa unboxing.

Användning av Wrapper-klasser i Java

Java är ett objektorienterat programmeringsspråk, så vi måste hantera objekt många gånger som i samlingar, serialisering, synkronisering, etc. Låt oss se de olika scenarierna där vi behöver använda omslagsklasserna.

    Ändra värdet i Metod: Java stöder endast call by value. Så om vi passerar ett primitivt värde kommer det inte att ändra det ursprungliga värdet. Men om vi konverterar det primitiva värdet i ett objekt kommer det att ändra det ursprungliga värdet. Serialisering: Vi måste konvertera objekten till strömmar för att utföra serialiseringen. Om vi ​​har ett primitivt värde kan vi konvertera det till objekt genom omslagsklasserna. Synkronisering: Java-synkronisering fungerar med objekt i Multithreading. java.util-paket: Paketet java.util tillhandahåller verktygsklasserna för att hantera objekt. Insamlingsram: Java-samlingsramverk fungerar endast med objekt. Alla klasser i samlingsramverket (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque, etc.) behandlar endast objekt.

De åtta klasserna i java.lang paket är kända som wrapper-klasser i Java. Listan över åtta omslagsklasser ges nedan:

Primitiv typ Omslagsklass
booleskt Boolean
röding Karaktär
byte Byte
kort Kort
int Heltal
lång Lång
flyta Flyta
dubbel Dubbel

Autoboxning

Den automatiska omvandlingen av primitiv datatyp till dess motsvarande omslagsklass kallas autoboxing, till exempel byte till byte, char till Character, int till heltal, long till Long, float till Float, boolean till boolean, dubbel till dubbel och kort för kort.

Sedan Java 5 behöver vi inte använda metoden valueOf() för wrapperklasser för att konvertera primitiva till objekt.

Wrapper-klass Exempel: Primitiv till Wrapper

 //Java program to convert primitive into objects //Autoboxing example of int to Integer public class WrapperExample1{ public static void main(String args[]){ //Converting int into Integer int a=20; Integer i=Integer.valueOf(a);//converting int into Integer explicitly Integer j=a;//autoboxing, now compiler will write Integer.valueOf(a) internally System.out.println(a+' '+i+' '+j); }}  

Produktion:

 20 20 20  

Unboxing

Den automatiska omvandlingen av omslagstyp till motsvarande primitiva typ kallas unboxing. Det är den omvända processen för autoboxning. Sedan Java 5 behöver vi inte använda metoden intValue() för wrapperklasser för att konvertera wrappertypen till primitiver.

Wrapper class Exempel: Wrapper till Primitiv

 //Java program to convert object into primitives //Unboxing example of Integer to int public class WrapperExample2{ public static void main(String args[]){ //Converting Integer to int Integer a=new Integer(3); int i=a.intValue();//converting Integer to int explicitly int j=a;//unboxing, now compiler will write a.intValue() internally System.out.println(a+' '+i+' '+j); }}  

Produktion:

 3 3 3  

Java Wrapper-klasser Exempel

 //Java Program to convert all primitives into its corresponding //wrapper objects and vice-versa public class WrapperExample3{ public static void main(String args[]){ byte b=10; short s=20; int i=30; long l=40; float f=50.0F; double d=60.0D; char c='a'; boolean b2=true; //Autoboxing: Converting primitives into objects Byte byteobj=b; Short shortobj=s; Integer intobj=i; Long longobj=l; Float floatobj=f; Double doubleobj=d; Character charobj=c; Boolean boolobj=b2; //Printing objects System.out.println('---Printing object values---'); System.out.println('Byte object: '+byteobj); System.out.println('Short object: '+shortobj); System.out.println('Integer object: '+intobj); System.out.println('Long object: '+longobj); System.out.println('Float object: '+floatobj); System.out.println('Double object: '+doubleobj); System.out.println('Character object: '+charobj); System.out.println('Boolean object: '+boolobj); //Unboxing: Converting Objects to Primitives byte bytevalue=byteobj; short shortvalue=shortobj; int intvalue=intobj; long longvalue=longobj; float floatvalue=floatobj; double doublevalue=doubleobj; char charvalue=charobj; boolean boolvalue=boolobj; //Printing primitives System.out.println('---Printing primitive values---'); System.out.println('byte value: '+bytevalue); System.out.println('short value: '+shortvalue); System.out.println('int value: '+intvalue); System.out.println('long value: '+longvalue); System.out.println('float value: '+floatvalue); System.out.println('double value: '+doublevalue); System.out.println('char value: '+charvalue); System.out.println('boolean value: '+boolvalue); }}  

Produktion:

 ---Printing object values--- Byte object: 10 Short object: 20 Integer object: 30 Long object: 40 Float object: 50.0 Double object: 60.0 Character object: a Boolean object: true ---Printing primitive values--- byte value: 10 short value: 20 int value: 30 long value: 40 float value: 50.0 double value: 60.0 char value: a boolean value: true  

Anpassad Wrapper-klass i Java

Java Wrapper-klasser omsluter de primitiva datatyperna, det är därför det är känt som wrapperklasser. Vi kan också skapa en klass som omsluter en primitiv datatyp. Så vi kan skapa en anpassad omslagsklass i Java.

 //Creating the custom wrapper class class Javatpoint{ private int i; Javatpoint(){} Javatpoint(int i){ this.i=i; } public int getValue(){ return i; } public void setValue(int i){ this.i=i; } @Override public String toString() { return Integer.toString(i); } } //Testing the custom wrapper class public class TestJavatpoint{ public static void main(String[] args){ Javatpoint j=new Javatpoint(10); System.out.println(j); }}  

Produktion:

 10