Kurs Java

Typy obiektowe

Jak już wspominaliśmy w poprzednich rozdziałach, w Javie oprócz typów prostych są jeszcze tak zwane typy obiektowe. Typy obiektowe są opakowaniami typów prostych.

Typy obiektowe

Przykładem typów obiektowych są: Byte, Short, Integer, Long, Float, Double, Boolean. Zobaczmy teraz jak wyglądają opisywane przez nas Typy proste w zestawieniu z ich obiektowymi opakowaniami:
byte itemNumber = 3; // Typ prosty
Byte itemNumberAsObject = new Byte((byte) 3); // Typ obiektowy
short itemNumber = 4; 
Short itemNumberAsObject = new Short((short) 4); 
int itemNumber = 5; 
Integer itemNumberAsObject = new Integer(5); 
double itemNumber = 6.5; 
Double itemNumberAsObject = new Double(6.5);
Trochę skomplikowane? Nie ma się co martwić. Na szczęście Java sama potrafi sobie automatycznie poradzić z opakowaniem typów prostych przez obiekty, przy pomocy tzw. autoboxingu:
Byte itemNumberAsByteObject = 3;
Short itemNumberAsShortObject = 4;
Integer itemNumberAsIntegerObject  = 5;
Double itemNumberAsDoubleObject = 6.5
Java umożliwia też wykonanie operacji odwrotnej - tzw. unboxing:
int itemNumberAsIntType = new Integer(7);  
Przy tym wszystkim trzeba pamiętać, że Java domyślnie każdą liczbę całkowitą napisaną przez programistę traktuje jako int i jeśli taką liczbę całkowitą przypisujemy do typu o niższym zakresie, wówczas konwersja do tego typu wykona się automatycznie. Jeśli jednak spróbujemy liczbę całkowitą przypisać do typu Long, to taka operacja nie będzie możliwa. IDE zwróci nam błąd kompilacji. W takim przypadku zamiast napisać:
Long itemNumberAsLongObject = 7; // Błąd kompilacji  
musimy użyć dodatkowego literału (l albo L):
Long itemNumberAsLongObject = 7l;  
Taki problem dotyczy zresztą nie tylko typów obiektowych. Co prawda bez problemu użyjemy typu prostego bez definiowania dodatkowego literału dla małej liczby, na przykład 7:
long itemNumberAsLongType = 7;  
ale już wartość 72036854775807 będzie wymagała użycia literału:
long itemNumberAsLongType = 72036854775807l;    
Spowodowane jest to tym, że w Javie domyślnym typem liczbowym jest int i tak jest traktowana liczba 7. Liczba 72036854775807 wykracza poza zakres typu int, więc musimy dookreślić, że chodzi nam o long.
Zdjęcie autora
Autor: Jarek Klimas
Data: 03 stycznia 2024
Labele: Backend, Podstawowy, Java
Masz pytanie dotyczące tego rozdziału? Zadaj je nam!
Masz pytanie dotyczące prezentowanego materiału?
Coś jest dla Ciebie niejasne i Twoje wątpliwości przeszkadzają Ci w pełnym zrozumieniu treści?
Napisz do nas maila, a my chętnie znajdziemy odpowiednie rozwiązanie.
Najciekawsze pytania wraz z odpowiedziami będziemy publikować pod rozdziałem.
Nie czekaj. Naucz się programować jeszcze lepiej.
kursjava@javappa.com

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE