logo

Classes d'embolcall en Java

El classe d'embolcall en Java proporciona el mecanisme convertir el primitiu en objecte i l'objecte en primitiu .

Des de J2SE 5.0, autoboxing i unboxing La funció converteix els primitius en objectes i els objectes en primitius automàticament. La conversió automàtica de primitiu en un objecte es coneix com autoboxing i viceversa unboxing.

Ús de classes Wrapper a Java

Java és un llenguatge de programació orientat a objectes, així que hem de tractar amb objectes moltes vegades com en Col·leccions, Serialització, Sincronització, etc. Vegem els diferents escenaris, on hem d'utilitzar les classes d'embolcall.

java comparable
    Canvieu el valor al mètode:Java només admet trucades per valor. Per tant, si passem un valor primitiu, no canviarà el valor original. Però, si convertim el valor primitiu en un objecte, canviarà el valor original.Serialització:Hem de convertir els objectes en fluxos per realitzar la serialització. Si tenim un valor primitiu, el podem convertir en objectes mitjançant les classes d'embolcall.Sincronització:La sincronització de Java funciona amb objectes en Multithreading.paquet java.util:El paquet java.util proporciona les classes d'utilitat per tractar objectes.Marc de la col·lecció:El marc de col·lecció Java només funciona amb objectes. Totes les classes del marc de col·lecció (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque, etc.) només tracten objectes.

Les vuit classes de la java.lang paquet es coneixen com a classes d'embolcall a Java. La llista de vuit classes d'embolcall es presenta a continuació:

Tipus primitiuClasse d'embolcall
booleàbooleà
char Personatge
byteByte
curtCurt
int Enter
llargLlarg
flotarFlota
dobleDoble

Autoboxing

La conversió automàtica del tipus de dades primitiu a la seva classe d'embolcall corresponent es coneix com a autoboxing, per exemple, byte a Byte, char a Character, int a Integer, long to Long, float a Float, boolean to Boolean, double to Double i short. a curt.

Des de Java 5, no necessitem utilitzar el mètode valueOf() de les classes d'embolcall per convertir el primitiu en objectes.

Classe Wrapper Exemple: Primitiu a 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); }} 

Sortida:

menú desplegable javascript
 20 20 20 

Unboxing

La conversió automàtica del tipus d'embolcall al tipus primitiu corresponent es coneix com unboxing. És el procés invers de l'autoboxing. Des de Java 5, no necessitem utilitzar el mètode intValue() de les classes d'embolcall per convertir el tipus d'embolcall en primitius.

gestor de tasques linux

Classe wrapper Exemple: wrapper a primitive

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

Sortida:

 3 3 3 

Classes d'embolcall de Java Exemple

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

Sortida:

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

Classe d'embolcall personalitzat a Java

Les classes d'embolcall de Java embolcallen els tipus de dades primitius, per això es coneixen com a classes d'embolcall. També podem crear una classe que embolcalli un tipus de dades primitiu. Per tant, podem crear una classe d'embolcall personalitzada a 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); }} 

Sortida:

 10