Wprowadzenie do klasy Wrapper w Javie
Klasa Wrapper jest ważną klasą biblioteki java.lang. Obiekty klasy opakowania tworzą opakowanie dla pierwotnych typów danych. Podczas tworzenia obiektu klasy opakowania przestrzeń jest tworzona w pamięci, w której przechowywany jest pierwotny typ danych.
Klasa opakowania zawiera pewne funkcje konwersji obiektu na pierwotne dane i pierwotne dane na obiekt, tj. Boxing / unboxing. Konwersja obiektów na pierwotne dane i pierwotne dane na obiekt odbywa się automatycznie. Pierwotny typ danych odnosi się do int, float, char, double, byte itp.
Składnia:
Poniższa deklaracja pokazuje, jak klasa Wrapper działa w programie Java.
np. int i = 100;
W podanym poniżej przykładzie widzimy, że i jest liczbą całkowitą typu danych. Jakiś czas w liczbach całkowitych języka Java musi zostać przekazany jako typ obiektu. W takim przypadku możemy użyć klasy opakowania do konwersji liczby całkowitej na obiekt.
Integer intVal = new Integer(i);
W podanej powyżej składni możemy zobaczyć, jak prymitywny typ danych jest konwertowany na obiekt za pomocą obiektu klasy Integer. Można również powiedzieć, że pierwotny typ danych jest zawinięty jako obiekt.
Zastosowania klasy opakowania w Javie
- Klasy Wrapper można użyć do przekształcenia obiektu w pierwotny typ danych lub odwrotnie.
- Zastosowanie klas opakowań poprawia wydajność programu.
- Klasa Wrapper pomaga w serializacji obiektu i odwrotnie. Może konwertować prymitywne dane na obiekty. Czasami musimy przesyłać strumieniowo obiekty, w takim przypadku klasa opakowania może przekonwertować ją na format serializacji.
- Niektóre ważne metody są dostarczane przez klasę opakowania, która służy do wyszukiwania i sortowania w kolekcjach.
- Odejmując i dodając, tego typu operacje nie mogą modyfikować starej wartości pierwotnej liczby całkowitej klasy podstawowej Wrapper, dlatego klasa Wrapper jest znana jako niezmienna.
- Klasa opakowania używana w procesie wielowątkowym, ponieważ proces wielowątkowy potrzebuje obiektu do synchronizacji procesów. Klasa opakowania przekształca inny typ danych w obiekt.
Na podstawie JavaAPI hierarchia klas Wrapper utrzymuje Object na szczycie różnych prymitywnych klas. Liczba, charakter i wartość logiczna są na drugim poziomie zaraz po obiekcie. Na trzecim poziomie Bajt, Krótki, Int, Długi, Float, Double znajduje się w typie danych Liczba.
Klasy opakowań używają następujących dwóch mechanizmów: Autoboxing i unboxing do konwersji / zawijania typu danych lub konwersji obiektu na pierwotny typ danych.
Autoboxing: Autoboxing odnosi się do automatycznej konwersji pierwotnego typu danych na obiekt za pomocą klas Wrapper. Jest znany jako Autoboxing. W podanych poniżej Przykładach int przekonwertowany na obiekt Integer, aw przykładach c, inny pierwotny typ danych jest przekształcany w odpowiedni obiekt.
Rozpakowywanie: Rozpakowywanie jest odwrotnym procesem automatycznego porównywania. Automatyczne konwertowanie obiektu klasy opakowania na odpowiadający mu prymitywny typ danych nazywa się Rozpakowywanie. W podanym poniżej przykładzie b obiekt Integer jest konwertowany na int pierwotny typ danych.
Przykłady klasy opakowania w Javie
Poniżej znajdują się różne przykłady Wrapper Class w Javie.
Przykład 1
W podanym poniżej przykładzie możemy zobaczyć, jak odbywa się ręczna konwersja przez klasę opakowania od int i do obiektu k.
Kod:
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);
)
)
Wynik:
W podanym powyżej przykładzie możemy zobaczyć, jak jawnie odbywa się konwersja.
Przykład nr 2
W podanym poniżej przykładzie widzimy, że ten proces konwersji czasami zachodzi automatycznie, tzn. Jest znany jako autoboxing.
Kod:
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));
)
)
Wynik:
W podanym powyżej przykładzie wartość int skonwertowana na obiekt niejawnie jako obiekt. Ponadto tę wartość można uzyskać z ArrayList.
Przykład nr 3
W tym przykładzie omówimy implementację Unboxing. Rozpakowanie jest odwrotnym procesem Autoboxingu.
Kod:
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);
)
)
Wynik:
W powyższym przykładzie pole obiektu ArrayList jest konwertowane na k pierwotnego typu danych tj. Int k.
Przykład 4
Poniższy podany przykład zawiera wszystkie szczegóły dotyczące Autoboxing i Unboxing.
Kod:
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);
)
)
Wynik:
W wyżej wymienionym programie możemy zobaczyć implementację klas Wrapper. Klasy opakowań przekształcają pierwotny typ danych w obiekt i obiekt w pierwotny typ danych. Klasa opakowania zapewnia osobne klasy dla każdego pierwotnego typu danych.
Wniosek
Dzięki klasom Wrapper możemy łatwo zrozumieć autoboxing i unboxing. Jak przebiega konwersja z prymitywnego na obiekt i odwrotnie, co można łatwo zrozumieć za pomocą klas Wrapper. Dla każdego z pierwotnych typów danych istnieje dedykowana klasa w java.
Polecany artykuł
Jest to przewodnik po Wrapper Class w Javie. Tutaj omawiamy składnię i zastosowania klasy opakowania w Javie wraz z różnymi przykładami i implementacją kodu. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Jak działa instrukcja Case w Javie?
- Co to jest Generics w Javie?
- Pojęcie serializacji w Javie
- 8 najważniejszych pytań do wywiadu Java
- Narzędzia wdrażania Java
- Przykłady i jak działają generics w C #