De wrapper-klasse in Java biedt het mechanisme om primitief in object en object in primitief om te zetten .
Sinds J2SE 5.0, autoboksen En uitpakken functie zet primitieven automatisch om in objecten en objecten in primitieven. De automatische conversie van een primitief naar een object staat bekend als autoboxing en omgekeerd unboxing.
Gebruik van Wrapper-klassen in Java
Java is een objectgeoriënteerde programmeertaal, dus we moeten vaak met objecten omgaan, zoals bij verzamelingen, serialisatie, synchronisatie, enz. Laten we de verschillende scenario's bekijken, waarin we de wrapper-klassen moeten gebruiken.
Java-polymorfisme
De acht klassen van de java.lang pakket staan in Java bekend als wrapper-klassen. De lijst met acht wrapper-klassen wordt hieronder gegeven:
Primitief soort | Wrapper-klasse |
---|---|
Booleaans | Booleaans |
verkoold | Karakter |
byte | Byte |
kort | Kort |
int | Geheel getal |
lang | Lang |
vlot | Vlot |
dubbele | Dubbele |
Autoboksen
De automatische conversie van het primitieve gegevenstype naar de bijbehorende wrapper-klasse staat bekend als autoboxing, bijvoorbeeld byte naar byte, char naar karakter, int naar geheel getal, long naar long, float naar float, boolean naar boolean, double naar double en short te kort.
Sinds Java 5 hoeven we de methode valueOf() van wrapper-klassen niet meer te gebruiken om de primitief in objecten te converteren.
Wrapper-klasse Voorbeeld: Primitief naar 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); }}
Uitgang:
YouTube-video's downloaden met vlc
20 20 20
Uitpakken
De automatische conversie van het wikkeltype naar het overeenkomstige primitieve type staat bekend als unboxing. Het is het omgekeerde proces van autoboxing. Sinds Java 5 hoeven we de intValue()-methode van wrapper-klassen niet meer te gebruiken om het wrapper-type naar primitieven te converteren.
java converteert naar string
Wrapper-klasse Voorbeeld: Wrapper naar primitief
//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); }}
Uitgang:
3 3 3
Java Wrapper-klassen Voorbeeld
//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); }}
Uitgang:
---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
Aangepaste Wrapper-klasse in Java
Java Wrapper-klassen omsluiten de primitieve gegevenstypen en daarom worden deze ook wel wrapper-klassen genoemd. We kunnen ook een klasse maken die een primitief gegevenstype omhult. We kunnen dus een aangepaste wrapper-klasse maken in 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); }}
Uitgang:
10