Kluczowa różnica – klasa opakowująca a typ pierwotny w Javie
Java to popularny język programowania używany do tworzenia różnych aplikacji. Jedną z zalet Javy jest to, że obsługuje programowanie zorientowane obiektowo (OOP). Za pomocą OOP program lub oprogramowanie można modelować za pomocą obiektów. Klasa służy jako plan do stworzenia obiektu. W programowaniu konieczne jest przechowywanie danych. Zarezerwowane lokalizacje pamięci do przechowywania danych są znane jako zmienne. Każda zmienna ma określony typ danych. Istnieje osiem typów prymitywnych dostarczanych przez język Java. Są to short, byte, int, float, double, char, boolean. Czasami wymagane jest przekonwertowanie typu pierwotnego na obiekt, a obiektu z powrotem na typ pierwotny. Do tej konwersji używane są klasy opakowujące. W tym artykule omówiono różnicę między klasą opakowującą a typem pierwotnym w Javie. Kluczowa różnica między klasą opakowującą a typem pierwotnym w Javie polega na tym, że klasa opakowująca jest używana do konwersji typu pierwotnego na obiekt i obiektu z powrotem na typ pierwotny, podczas gdy typ pierwotny jest predefiniowanym typem danych dostarczanym przez język programowania Java.
Co to jest klasa opakowująca w Javie?
Klasa Wrapper w Javie służy do konwersji pierwotnego typu danych na obiekt i obiektu na typ pierwotny. Nawet podstawowe typy danych są używane do przechowywania podstawowych typów danych, struktury danych, takie jak listy tablic i wektory, przechowują obiekty. Dlatego do konwersji wymagane jest użycie klas opakowujących. Odpowiednie klasy opakowujące dla typów pierwotnych char, byte, short i int to Character, Byte, Short i Integer. Odpowiednie klasy opakowujące dla long, float, double i boolean to Long, Float, Double i Boolean.
Rysunek 01: Program Java, który konwertuje klasy opakowujące na typy pierwotne
Według powyższego programu, intobj jest obiektem klasy opakowującej liczby całkowite. floatobj jest obiektem klasy opakowującej Float. Doubleobj jest obiektem klasy Double wrapper. Obiekt Integer jest konwertowany na prymitywny int przy użyciu intValue (). Podobnie obiekt Float jest konwertowany na pierwotną liczbę zmiennoprzecinkową za pomocą floatValue(). Obiekt Double jest konwertowany na prymitywny double przy użyciu doubleValue (). Jeśli programista napisze instrukcję jako int i=intobj; kompilator wewnętrznie zapisuje do bj. Value(). Proces automatycznego konwertowania obiektu klasy opakowującej na odpowiadający mu typ pierwotny jest znany jako unboxing. Kolekcje takie jak ArrayLists używają klasy Wrapper, ponieważ przechowują obiekty.
Co to jest typ pierwotny w Javie?
Prymitywne typy danych to predefiniowane typy danych udostępniane przez język programowania Java. Istnieje osiem typów prymitywnych. Są to bajty, krótkie, int, długie, zmiennoprzecinkowe, podwójne, logiczne i char. Typ danych bajtowych służy do przechowywania 8-bitowej liczby całkowitej ze znakiem dopełnienia do dwóch. Krótki typ danych służy do przechowywania 16-bitowej liczby całkowitej ze znakiem dopełnienia do dwóch. Typ danych int służy do przechowywania 32-bitowej liczby całkowitej ze znakiem dopełnienia do dwójki, podczas gdy typ danych typu long służy do przechowywania 64-bitowej liczby całkowitej dopełnienia do dwóch z pojedynczym znakiem. Float służy do przechowywania 32-bitowej wartości zmiennoprzecinkowej pojedynczej precyzji, a double służy do przechowywania 64-bitowej wartości zmiennoprzecinkowej podwójnej precyzji. Wartość logiczna jest używana do przedstawiania prawdy lub fałszu. Znak służy do przechowywania pojedynczego znaku. Oto osiem typów pierwotnych w Javie.
Rysunek 02: Program Java, który konwertuje typy pierwotne na klasy opakowujące
Według powyższego programu, num1 jest typem int. Jest konwertowany na liczbę całkowitą przez przekazanie num1 do Integer.valueOf(). Float1 może przechowywać wartości zmiennoprzecinkowe. Jest konwertowany na typ Float przez przekazanie float1 do Float.valueOf(). Podobnie double1 może przechowywać podwójne wartości. Jest konwertowany na typ Double przez przekazanie double1 do Double.valueOf(). Jeśli programista zapisuje instrukcję jako Interger intobj=num1; kompilator wewnętrznie zapisuje Integer.valueOf(num1); Proces automatycznej konwersji typu pierwotnego na odpowiedni obiekt klasy opakowującej jest znany jako autoboxing.
Jakie jest podobieństwo między klasą opakowującą a typem pierwotnym w Javie?
Zarówno klasa Wrapper, jak i typ pierwotny w Javie mogą być używane do przechowywania danych podczas programowania
Jaka jest różnica między klasą opakowującą a typem pierwotnym w Javie?
Klasa opakowująca a typ pierwotny w Javie |
|
Klasa Wrapper udostępnia mechanizm konwersji typu pierwotnego na obiekt i obiektu na typ pierwotny. | Typ pierwotny to predefiniowany typ danych dostarczany przez Javę. |
Klasa powiązana | |
Do utworzenia obiektu używana jest klasa Wrapper; dlatego ma odpowiednią klasę. | Typ pierwotny nie jest obiektem, więc nie należy do klasy. |
Wartości zerowe | |
Obiekty klasy opakowującej dopuszczają wartości null. | Prymitywny typ danych nie zezwala na wartości null. |
Wymagana pamięć | |
Wymagana ilość pamięci jest większa niż w przypadku typów pierwotnych. Indeks klastrowy nie wymaga dodatkowej przestrzeni. | Wymagana pamięć jest mniejsza w porównaniu do klas opakowujących. |
Kolekcje | |
Klasa Wrapper może być używana z kolekcją taką jak ArrayList itp. | Typ pierwotny nie jest używany z kolekcjami. |
Podsumowanie – Klasa opakowująca a typ pierwotny w Javie
Język Java udostępnia osiem podstawowych typów danych. Czasami wymagane jest przekonwertowanie typów pierwotnych na obiekty, a także przekonwertowanie obiektów z powrotem na prymitywne. Do realizacji tego zadania można użyć klas opakowujących. Różnica między klasą opakowującą a typem pierwotnym w Javie polega na tym, że klasa opakowująca jest używana do konwersji typu pierwotnego na obiekt i obiektu z powrotem na typ pierwotny, podczas gdy typ pierwotny jest predefiniowanym typem danych dostarczanym przez język programowania Java.