Třída Wrapper v Javě - Autoboxing, Unboxing and Conversion

Obsah:

Anonim

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

  1. Třídu Wrapper lze použít k převodu objektu na primitivní datový typ nebo jeho obráceně.
  2. Použití tříd obálky zlepšuje výkon programu.
  3. 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.
  4. 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.
  5. 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á.
  6. 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 -

  1. Jak funguje Case Case v Javě?
  2. Co je to Generics v Javě?
  3. Koncept serializace v Javě
  4. Java Top 8 Interview Otázky
  5. Java Deployment Tools
  6. Příklady a jak generici pracují v C #