Wrapper Class v Jave Autoboxing, Unboxing and Conversion

Obsah:

Anonim

Úvod do triedy Wrapper v Jave

Wrapper Class je dôležitá trieda knižnice java.lang. Objekty triedy Wrapper vytvárajú obal pre primitívne typy údajov. Pri vytváraní objektu triedy obálky sa v pamäti vytvorí miesto, kde sa ukladá primitívny dátový typ.

Trieda Wrapper poskytuje niektoré funkcie na konverziu objektu na primitívne údaje a primitívne údaje na objekt, tj box / rozbalenie. Konverzia z objektov na primitívne údaje a primitívne údaje na objekt sa uskutoční automaticky. Primitívny typ údajov sa týka int, float, char, double, byte atď.

syntaxe:

Nižšie uvedené vyhlásenie ukazuje, ako trieda Wrapper pracuje v programe java.

napr. int i = 100;

V nižšie uvedenom príklade vidíme, že i je celočíselný typ údajov. Určitý čas v java integer je potrebné odovzdať ako typ objektu. V tomto prípade môžeme použiť triedu wrapper na konverziu celého čísla na objekt.

Integer intVal = new Integer(i);

Vo vyššie uvedenej syntaxi vidíme, ako sa primitívny dátový typ prevádza na objekt pomocou objektu triedy Integer. Môžeme tiež povedať, že primitívny dátový typ je zabalený ako objekt.

Použitie triedy Wrapper v Jave

  1. Wrapper Class sa dá použiť na konverziu objektu na primitívny dátový typ alebo naopak.
  2. Použitie tried obálok zlepšuje výkon programu.
  3. Wrapper trieda pomáha pri serializácii objektu a naopak, môže prevádzať primitívne dáta na objekty. Niekedy potrebujeme streamovať objekty, v takom prípade ho trieda obalov môže previesť do serializačného formátu.
  4. Niektoré dôležité metódy poskytuje trieda obalov, ktorá sa používa na vyhľadávanie a triedenie v kolekciách.
  5. Odčítaním a sčítaním tieto typy operácií nemôžu modifikovať starú hodnotu primitívneho celého čísla triedy Wrapper, a preto je trieda Wrapper známa ako nemenná.
  6. Trieda Wrapper použitá vo viacvláknovom procese, keďže viacvláknový proces vyžaduje objekt na synchronizáciu procesov. Trieda Wrapper prevádza iný typ údajov na objekt.

Na základe JavaAPI udržuje hierarchia tried Wrapper Object na vrchole rôznych primitívnych tried. Number, Character & Boolean prichádza na druhú úroveň hneď za objektom. Na tretej úrovni patrí Byte, Short, Int, Long, Float, Double pod typ údajov Number.

Triedy Wrapper používajú nasledujúce dva mechanizmy Autoboxing & unboxing na konverziu / zabalenie dátového typu alebo konverziu objektu na primitívny dátový typ.

Autoboxing: Autoboxing označuje automatickú konverziu primitívneho typu údajov na objekt pomocou tried Wrapper. Je známa ako Autoboxing. V nižšie uvedených príkladoch sa int prevedie na celočíselný objekt a v príkladoch c sa na zodpovedajúci objekt prevádza iný primitívny typ údajov.

Unboxing: Unboxing je reverzný proces Autoboxingu. Automatický prevod objektu triedy obálky na zodpovedajúci primitívny dátový typ je známy ako Unboxing. V nižšie uvedenom príklade b sa objekt Integer prevádza na typ intitívnych dát.

Príklady triedy Wrapper v Jave

Nižšie sú uvedené rôzne príklady triedy Wrapper v Jave.

Príklad č. 1

V nižšie uvedenom príklade vidíme, ako prebieha manuálna konverzia cez triedu wrapperov 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ýkon:

V uvedenom príklade vidíme, ako konverzia prebieha explicitne.

Príklad č. 2

V nižšie uvedenom príklade vidíme, že tento proces premeny niekedy prebieha automaticky, tj známy ako 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ýkon:

V uvedenom príklade je hodnota int konvertovaná na objekt implicitne ako objekt. Ďalej táto hodnota môže byť získaná z ArrayListu.

Príklad č. 3

V tomto príklade prejdeme implementáciou funkcie Unboxing. Unboxing je spä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ýkon:

Vo vyššie uvedenom príklade sa pole objektu ArrayList prevedie na primitívny dátový typ k, tj int k.

Príklad č. 4

Nasledujúci príklad obsahuje všetky podrobnosti o Autoboxingu a odomykaní.

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ýkon:

Vo vyššie uvedenom programe vidíme implementáciu tried Wrapper. Triedy Wrapper prevádzajú primitívny dátový typ na objekt a objekt na primitívny dátový typ. Trieda wrapper poskytuje samostatné triedy pre každý primitívny dátový typ.

záver

Prostredníctvom tried Wrapper môžeme ľahko pochopiť autoboxing & unboxing. Ako prebieha konverzia z primitívneho na objekt a naopak, čo možno ľahko pochopiť pomocou tried Wrapper. Pre každý z primitívnych typov údajov existuje java vyhradená trieda.

Odporúčaný článok

Toto je príručka triedy Wrapper v Jave. Tu diskutujeme syntax a použitie triedy wrapperov v Jave spolu s rôznymi príkladmi a implementáciou kódu. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Ako sa používa Case Case v Jave?
  2. Čo je generika v jazyku Java?
  3. Koncepcia serializácie v Jave
  4. Najčastejšie otázky týkajúce sa rozhovoru v jazyku Java
  5. Java Deployment Tools
  6. Príklady a ako generiká fungujú v jazyku C #