logo

Indpakningskurser i Java

Det wrapper klasse i Java sørger for mekanismen at konvertere primitiv til objekt og objekt til primitiv .

Siden J2SE 5.0, autoboksning og unboxing funktion konverterer primitiver til objekter og objekter til primitiver automatisk. Den automatiske konvertering af primitiv til et objekt er kendt som autoboxing og omvendt unboxing.

Brug af Wrapper-klasser i Java

Java er et objektorienteret programmeringssprog, så vi skal håndtere objekter mange gange som i samlinger, serialisering, synkronisering osv. Lad os se de forskellige scenarier, hvor vi skal bruge wrapper-klasserne.

javascript print
    Skift værdien i Metode:Java understøtter kun opkald efter værdi. Så hvis vi passerer en primitiv værdi, vil den ikke ændre den oprindelige værdi. Men hvis vi konverterer den primitive værdi i et objekt, vil det ændre den oprindelige værdi.Serialisering:Vi er nødt til at konvertere objekterne til streams for at udføre serialiseringen. Hvis vi har en primitiv værdi, kan vi konvertere den til objekter gennem indpakningsklasserne.Synkronisering:Java-synkronisering fungerer med objekter i Multithreading.java.util pakke:Java.util-pakken giver hjælpeklasserne til at håndtere objekter.Indsamlingsramme:Java-samlingsramme virker kun med objekter. Alle klasser i samlingsrammen (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque osv.) omhandler kun objekter.

De otte klasser af java.lang pakke er kendt som wrapper-klasser i Java. Listen over otte indpakningsklasser er angivet nedenfor:

Primitiv typeIndpakningsklasse
booleskBoolean
char Karakter
byteByte
kortKort
int Heltal
langLang
flydeFlyde
dobbeltDobbelt

Autoboksning

Den automatiske konvertering af primitive datatyper til dens tilsvarende wrapper-klasse er kendt som autoboxing, for eksempel byte til byte, tegn til tegn, int til heltal, lang til lang, float til float, boolsk til boolsk, dobbelt til dobbelt og kort til Kort.

Siden Java 5 behøver vi ikke bruge valueOf()-metoden for wrapper-klasser for at 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); }} 

Produktion:

palindrom nummer
 20 20 20 

Unboxing

Den automatiske konvertering af indpakningstype til dens tilsvarende primitive type er kendt som unboxing. Det er den omvendte proces af autoboxing. Siden Java 5 behøver vi ikke bruge metoden intValue() for wrapper-klasser for at konvertere wrapper-typen til primitiver.

java streng metoder

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

Produktion:

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

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 

Custom Wrapper-klasse i Java

Java Wrapper-klasser ombryder de primitive datatyper, det er derfor, det er kendt som wrapper-klasser. Vi kan også oprette en klasse, som omslutter en primitiv datatype. Så vi kan oprette en brugerdefineret indpakningsklasse 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