logo

Wrapper-klasser i Java

De wrapper klasse i Java gir mekanismen å konvertere primitiv til objekt og objekt til primitiv .

Siden J2SE 5.0, autoboksing og unboxing funksjonen konverterer primitiver til objekter og objekter til primitiver automatisk. Den automatiske konverteringen av primitiv til et objekt er kjent som autoboksing og omvendt unboxing.

Bruk av Wrapper-klasser i Java

Java er et objektorientert programmeringsspråk, så vi må håndtere objekter mange ganger som i samlinger, serialisering, synkronisering osv. La oss se de forskjellige scenariene der vi må bruke wrapper-klassene.

java-operatører
    Endre verdien i Metode:Java støtter kun call etter verdi. Så hvis vi passerer en primitiv verdi, vil den ikke endre den opprinnelige verdien. Men hvis vi konverterer den primitive verdien i et objekt, vil det endre den opprinnelige verdien.Serialisering:Vi må konvertere objektene til strømmer for å utføre serialiseringen. Hvis vi har en primitiv verdi, kan vi konvertere den til objekter gjennom wrapper-klassene.Synkronisering:Java-synkronisering fungerer med objekter i Multithreading.java.util-pakke:Java.util-pakken gir verktøyklassene for å håndtere objekter.Innsamlingsramme:Java-samlingsrammeverk fungerer kun med objekter. Alle klasser i samlingsrammeverket (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque, etc.) omhandler kun objekter.

De åtte klassene i java.lang pakken er kjent som wrapper-klasser i Java. Listen over åtte innpakningsklasser er gitt nedenfor:

Primitiv typeInnpakningsklasse
boolskboolsk
røye Karakter
byteByte
kortKort
int Heltall
langLang
flyteFlyte
dobbeltDobbelt

Autoboksing

Den automatiske konverteringen av primitiv datatype til dens tilsvarende innpakningsklasse er kjent som autoboksing, for eksempel byte til byte, tegn til tegn, int til heltall, lang til lang, flytende til flytende, boolsk til boolsk, dobbel til dobbel og kort til Short.

Siden Java 5 trenger vi ikke bruke valueOf()-metoden for wrapper-klasser for å konvertere primitivet til objekter.

Wrapper klasse Eksempel: Primitiv til 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); }} 

Produksjon:

git pull origin master
 20 20 20 

Unboxing

Den automatiske konverteringen av innpakningstypen til den tilsvarende primitive typen er kjent som unboxing. Det er den omvendte prosessen med autoboksing. Siden Java 5 trenger vi ikke bruke intValue()-metoden for wrapper-klasser for å konvertere wrapper-typen til primitiver.

0,0625 som en brøk

Wrapper klasse Eksempel: Wrapper til 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); }} 

Produksjon:

 3 3 3 

Java Wrapper-klasser Eksempel

 //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); }} 

Produksjon:

 ---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 

Egendefinert wrapper-klasse i Java

Java Wrapper-klasser omslutter de primitive datatypene, det er derfor det er kjent som wrapper-klasser. Vi kan også lage en klasse som omslutter en primitiv datatype. Så vi kan lage en tilpasset wrapper-klasse 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); }} 

Produksjon:

 10