Java Language
Typy danych odniesienia
Szukaj…
Tworzenie wystąpienia typu odniesienia
Object obj = new Object(); // Note the 'new' keyword
Gdzie:
-
Object
jest typem odniesienia. -
obj
to zmienna, w której należy zapisać nowe odwołanie. -
Object()
to wywołanie konstruktoraObject
.
Co się dzieje:
- Miejsce w pamięci jest przydzielone dla obiektu.
- Wywoływany jest konstruktor
Object()
celu zainicjowania tego obszaru pamięci. - Adres pamięci jest przechowywany w
obj
, dzięki czemu odnosi się do nowo utworzonego obiektu.
Różni się to od prymitywów:
int i = 10;
Gdzie rzeczywista wartość 10
jest przechowywana w i
.
Dereferencje
Dereferencje zdarzają się z .
operator:
Object obj = new Object();
String text = obj.toString(); // 'obj' is dereferenced.
Dereferencje następuje po adresie pamięci zapisanym w odwołaniu do miejsca w pamięci, w którym znajduje się rzeczywisty obiekt. Po znalezieniu obiektu wywoływana jest żądana metoda (w tym przypadku toString
).
Gdy odwołanie ma wartość null
, dereferencing powoduje wyjątek NullPointerException :
Object obj = null;
obj.toString(); // Throws a NullpointerException when this statement is executed.
null
oznacza brak wartości, tzn. podążanie za adresem pamięci nie prowadzi do nikąd. Nie ma więc obiektu, do którego można by wywołać żądaną metodę.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow