Материал предоставлен https://it.rfei.ru

Объектные ссылки

Ссылка служит указателем на объект, который создается и сохраняется в памяти. В Java управлять объектами можно только через ссылки, которые можно сохранить в переменных. Объект может иметь несколько ссылок, которые часто называются его псевдонимами. Управлять объектом можно через любой из его псевдонимов.

// Создание двух различных стеков символов
CharStack stackA = new CharStack(12);
CharStack stackB = new CharStack(6);

stackB = stackA;  // (1) псевдонимы после присваивания
// стек, на который ранее указывала переменная stackB,
// теперь не используется и может быть собран сборщиком мусора.

В вышеприведенном коде создаются два стека. Состояние системы до операции присваивания в строке (1) приведено на рис. 1.3а. После присваивания в строке (1) ссылочные переменные stackA и stackB обозначают один и тот же стек, как показано на рис. 1.3б. Ссылочные переменные stackA и stackB после присваивания оказываются псевдонимами, т. е. они ссылаются на один и тот же объект.

Рис. 1.3. Псевдонимы

(а) До присваивания

(б) После присваивания

Что произойдет с объектом стека, который перед присваиванием был представлен ссылочной переменной stackB? Когда объекты больше не используются, память, занимаемая этими объектами, если необходимо, освобождается и перераспределяется под другие объекты. Это называется автоматическим сбором мусора. Сбором мусора в Java занимается система времени выполнения.

Члены экземпляра

Каждый созданный объект имеет свою собственную копию полей, определенных в его классе. Поля объекта называются переменными экземпляра. Значения переменных экземпляра объекта содержат его состояние. Два разных объекта имеют одинаковое состояние, если их переменные экземпляров имеют одинаковые значения.

Методы объекта определяют его поведение. Эти методы называются методами экземпляра. Важно отметить, что эти методы относятся к каждому объекту класса. Однако сами реализации методов разделяются всеми экземплярами класса. Переменные экземпляра и методы экземпляра, которые принадлежат объектам, собирательно называются членами экземпляра, чтобы отличать их от статических членов, которые принадлежат только классу.

ОбъектыВызовы методов