Klasy opakowujące w Javie: co to jest, dlaczego tego potrzebujemy?
Opublikowany: 2021-12-23Java pracuje na koncepcjach OOP – Object-Oriented Programming. Mimo to Java nie może być uważana za kompletny język obiektowy. Dzieje się tak, ponieważ Java działa z ośmioma prymitywnymi typami danych — byte, short, int, float, long i double. Te typy danych Java nie są obiektami, co sprawia, że Java nie jest w pełni zorientowana obiektowo.
Jednak klasy opakowujące zapewniają dobry sposób na obejście tego ograniczenia, konwertując pierwotne typy danych na obiekty. W ten sposób klasy opakowujące sprawiają, że kod Java jest całkowicie zorientowany obiektowo.
Jest to jedno z ważniejszych pojęć do zrozumienia dla każdego, kto zaczyna od języka programowania Java. Pomożemy Ci w tym w tym artykule. Najpierw przyjrzymy się klasom opakowującym w Javie i dlaczego ich potrzebujemy oraz ich zaletom. Pod koniec artykułu będziesz w stanie pracować z klasami opakowującymi bez pomyłki!
Ucz się programów do tworzenia oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Spis treści
Klasa opakowująca w Javie
Twórcy oprogramowania często natykają się na sytuacje, które wymagałyby od nich pracy nie z prymitywnymi typami danych, ale z obiektami. Aby osiągnąć tę konwersję pierwotnych typów danych na obiekty, Java udostępnia programistom koncepcję klasy opakowującej. Ta klasa pomaga w konwersji z pierwotnego na obiekt, a także z obiektu na prymitywny typ danych.
Utworzenie klasy opakowującej automatycznie tworzy nowe pole, w którym przechowywane są podstawowe typy danych. Obiekt klasy opakowującej przechowuje wówczas prymitywny typ danych. Ten proces przekształcania pierwotnych typów danych w obiekty przy użyciu klas opakowujących jest znany jako pakowanie. Podczas pracy z klasami opakowującymi należy przekazać wartość pierwotnego typu danych do konstruktora klasy opakowującej.
Sześć klas opakowujących — byte, short, int, float, long i double — to wszystkie podklasy klasy number, która jest klasą abstrakcyjną. Pozostałe dwie klasy opakowujące – boolean i character – są podklasami klasy obiektowej.
Oto krótkie podsumowanie klasy opakowującej dla różnych typów danych pierwotnych, wraz z argumentem konstruktora wymaganym do utworzenia klasy opakowującej:
Dlaczego potrzebne są klasy opakowujące w Javie?
Klasy opakowujące w Javie są korzystne w sytuacjach, w których program wymaga pracy z obiektem zamiast z prymitywnym typem danych. W tym sensie klasy opakowujące pomagają programowi Java być w 100% zorientowanym obiektowo. Poza tym klasy opakowujące w Javie są potrzebne z następujących powodów:
- Wiązanie wartości różnych typów danych pierwotnych w obiekty. Pomaga to w wykonywaniu złożonych operacji i pracy z kolekcjami, takimi jak HashMap, ArrayList itp.
- Aby zapewnić różne funkcje narzędziowe, których można używać z prymitywnymi typami danych.
- Ponieważ prymitywne typy danych nie mogą mieć wartości null, ale mogą to być klasy opakowujące, działają one również jako obejście dla przypisywania wartości null do dowolnego typu danych pierwotnych.
Jakie są zalety używania klas opakowujących w Javie?
Klasa Wrapper w Javie zapewnia następujące podstawowe korzyści:
- Pomagają w serializacji kodu. Dzieje się tak, ponieważ serializacja wymaga konwersji obiektów na strumienie. Jeśli programiści chcą serializować wartość pierwotną, muszą najpierw zostać przekonwertowane na obiekty przy użyciu klas opakowujących.
- Pomagają w synchronizacji, ponieważ synchronizacja wielowątkowa w Javie wymaga obiektów.
- Prymitywne dane mogą korzystać z różnych klas util z pakietu Java.util.
- Praca z frameworkami kolekcji staje się możliwa przy użyciu klas opakowujących.
- Konwersja pierwotnych typów danych na obiekty umożliwia zmianę wartości wewnątrz funkcji za pomocą metody call-by-value.
- Klasy opakowujące w Javie zapewniają, że program jest polimorficzny.
Przykłady
1. Konwersja typu pierwotnego na obiekt
Przykład klasy publicznej{
public static void main(String args[]){
//Konwertowanie prymitywu float na obiekt Float
pływak n=10,10;
Float obj=Float.valueOf(n);
System.out.println(n+ ” “+ obj);
}
}
Wyjście:
10.10 10.10
Jak pokazują dane wyjściowe, zarówno dane pierwotne, jak i obiekt mają tę samą wartość. Możesz więc uzyskać dostęp do tej samej wartości za pomocą obj lub n, cokolwiek wolisz, w zależności od sytuacji.
2. Konwersja obiektu na typ pierwotny
Przykład klasy publicznej{
public static void main(String args[]){
//Tworzenie obiektu opakowującego
Float o= nowy Float (50,00);
//Konwertowanie obiektu na prymitywny
float n= obj.floatValue();
System.out.println(n+ ” “+ o);
}
}
Wyjście:
50,00 50,00
W powyższym przykładzie obiekt float został z powrotem przekonwertowany na pierwotny typ danych float. Podobnie możesz wykonać wiele konwersji i manipulacji za pomocą klas opakowujących w Javie. Istnieją różne funkcje, z którymi współpracują klasy opakowujące. Ta dyskusja wykracza poza zakres tego artykułu, ale zalecamy szczegółowe zapoznanie się z klasami opakowań wraz z różnymi funkcjami, z którymi będziesz musiał pracować podczas obsługi klas opakowań.
Na zakończenie
Podobnie jak klasy opakowujące, istnieje również wiele innych podstawowych koncepcji i pomysłów, które musisz opanować, aby osiągnąć sukces w tworzeniu oprogramowania. W upGrad szkoliliśmy różnych studentów na całym świecie i pomogliśmy im rozpocząć karierę w pożądanej dziedzinie. Nasze spersonalizowane sesje szkoleniowe i prowadzone przez ekspertów dyskusje na temat studiów przypadków pomagają uczniom być na bieżąco ze wszystkimi nabytymi koncepcjami.
Aby pomóc studentom w rozpoczęciu kariery programistycznej, przedstawiamy 5-miesięczny program online stworzony przez ekspertów i liderów branży – Job-Linked PG Certification in Software Engineering . Oprócz nauczenia Cię wszystkich niuansów w tej dziedzinie, program pomoże Ci również znaleźć się w najlepszych firmach. Sprawdź ten kurs i zarejestruj się już dziś!
Dlaczego w Javie potrzebne są klasy opakowujące?
Klasy opakowujące mają fundamentalne znaczenie w Javie, ponieważ pomagają programowi Javy być całkowicie zorientowanym obiektowo. Pierwotne typy danych w java domyślnie nie są obiektami. Muszą zostać przekonwertowane na obiekty za pomocą klas opakowujących.
Ile klas opakowujących jest dostępnych w Javie?
Liczba klas opakowujących w Javie jest taka sama jak liczba prymitywnych typów danych obsługiwanych przez Javę, tj. 8.
Czy klasy opakowujące w Javie są mutowalne?
Tak, klasy opakowujące są mutowalne.