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 konstruktora Object .

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