Úvod do třídy Wrapper v Javě
Wrapper Class je důležitá třída knihovny java.lang. Objekty třídy Wrapper vytvoří obal pro primitivní datové typy. Při vytváření objektu třídy obálky se vytvoří v paměti místo, kde je uložen primitivní datový typ.
Třída Wrapper poskytuje některé funkce pro převod objektu na primitivní data a primitivní data na objekt, tj. Box / rozbalení. Převod z objektů na primitivní data a primitivní data na objekt probíhá automaticky. Primitivní datový typ označuje int, float, char, double, byte atd.
Syntax:
Níže uvedené prohlášení ukazuje, jak třída Wrapper pracuje v programu java.
např. int i = 100;
V níže uvedeném příkladu vidíme, že i je celočíselný datový typ. Nějaký čas v java integer musí být předán jako typ objektu. V tomto případě můžeme pomocí třídy wrapper převést celé číslo na objekt.
Integer intVal = new Integer(i);
Ve výše uvedené syntaxi vidíme, jak se převádí primitivní datový typ na objekt pomocí objektu třídy Integer. Také lze říci, že primitivní datový typ je zalomen jako objekt.
Použití třídy Wrapper v Javě
- Třídu Wrapper lze použít k převodu objektu na primitivní datový typ nebo jeho obráceně.
- Použití tříd obálky zlepšuje výkon programu.
- Třída Wrapper pomáhá při serializaci objektu a naopak, může převádět primitivní data na objekty. Někdy potřebujeme streamovat objekty, v tom případě je třída wrapper může převést do serializačního formátu.
- Některé důležité metody poskytuje třída obálky, která se používá k vyhledávání a třídění ve sbírkách.
- Odčítání a sčítání, tyto typy operací nemohou změnit starou hodnotu primitivního celého čísla třídy Wrapper, proto je třída Wrapper známá jako neměnná.
- Třída Wrapper použitá v procesu s více podprocesy, protože proces s více podprocesy potřebuje objekt pro synchronizaci procesů. Třída Wrapper převádí různé typy dat na objekt.
Na základě JavaAPI udržuje hierarchie tříd Wrapper Object na vrcholu různých primitivních tříd. Number, Character & Boolean přichází na druhou úroveň hned za objektem. Na třetí úrovni byte, Short, Int, Long, Float, Double spadá do datového typu Number.
Třídy Wrapper používají následující dva mechanismy Autoboxing & unboxing pro převod / obtékání datového typu nebo konverzi objektu na primitivní datový typ.
Autoboxing: Autoboxing označuje automatickou konverzi primitivního datového typu na objekt pomocí tříd Wrapper. Je známá jako Autoboxing. V níže uvedených příkladech je int převeden na Integer objekt a v příkladech c je převeden jiný primitivní datový typ na odpovídající objekt.
Unboxing: Unboxing je zpětný proces Autoboxingu. Automatický převod objektu třídy obálky na odpovídající primitivní datový typ se nazývá Unboxing. V níže uvedeném příkladu b je objekt Integer převeden na int primitivní datový typ.
Příklady třídy Wrapper v Javě
Níže jsou uvedeny různé příklady třídy Wrapper v Javě.
Příklad č. 1
V níže uvedeném příkladu vidíme, jak probíhá ruční konverze skrze třídu wrapperů z int i na objekt k.
Kód:
import java.util.*;
class WrapperExample (
public static void main(String args())(
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
)
)
Výstup:
Ve výše uvedeném příkladu vidíme, jak k převodu dochází explicitně.
Příklad č. 2
V níže uvedeném příkladu vidíme, že tento proces převodu někdy probíhá automaticky, tj. Známý jako autoboxing.
Kód:
import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
int j = 500;
ArrayList arrValues = new ArrayList();
arrValues.add(j); // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
)
)
Výstup:
Ve výše uvedeném příkladu byla hodnota int převedena na objekt implicitně jako objekt. Tato hodnota může být dále získána z ArrayListu.
Příklad č. 3
V tomto příkladu projdeme implementaci Unboxingu. Unboxing je zpětný proces Autoboxingu.
Kód:
import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
ArrayList arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
)
)
Výstup:
Ve výše uvedeném příkladu je objektové pole ArrayList převedeno na primitivní datový typ k, tj. Int k.
Příklad č. 4
Následující uvedený příklad obsahuje všechny podrobnosti o Autoboxingu a rozbalení.
Kód:
import java.util.*;
class WrapperConversionExample (
public static void main(String args())(
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
)
)
Výstup:
Ve výše uvedeném programu vidíme implementaci tříd Wrapper. Třídy Wrapper převádějí primitivní datový typ na objekt a objekt na primitivní datový typ. Třída wrapper poskytuje samostatné třídy pro každý primitivní datový typ.
Závěr
Prostřednictvím tříd Wrapper můžeme snadno pochopit autoboxing & unboxing. Jak probíhá konverze z primitivního na objekt a naopak, což lze snadno pochopit pomocí tříd Wrapper. Pro každý z primitivních datových typů existuje java vyhrazená třída.
Doporučený článek
Toto je průvodce třídy Wrapper v Javě. Zde diskutujeme syntaxi a použití třídy wrapper v Javě spolu s různými příklady a implementací kódu. Další informace naleznete také v dalších navrhovaných článcích -
- Jak funguje Case Case v Javě?
- Co je to Generics v Javě?
- Koncept serializace v Javě
- Java Top 8 Interview Otázky
- Java Deployment Tools
- Příklady a jak generici pracují v C #