— Это снова твоя любимая учительница. Раз у нас так быстро пошли дела, решила рассказать тебе, что такое объекты, и как с ними работать.
— Чтобы создать какой-нибудь объект, нужно написать имя типа (класс) этого объекта и ключевое слово new перед ним. Допустим, у нас есть класс «кот» – Cat, тогда:
Код | Описание |
---|---|
|
Объявляет ссылочную переменную с именем cat и типом Cat. Значение переменной cat – ссылка null. |
|
Создаёт объект типа Cat. |
|
Создаёт ссылочную переменную cat типа Cat. Создаёт новый объект типа Cat. Присваивает в переменную cat ссылку на новосозданный объект. |
|
Создаются два объекта, ссылки на которые присваиваются двум разным переменным соответственно. |
|
Создаются два объекта, ссылки на которые присваиваются двум разным переменным.
Затем, переменной vaska присваивается ссылка на объект, содержащийся в переменной murzik. Теперь обе переменных ссылаются на первый созданный объект. |
|
Создаётся один объект типа Cat, ссылка на который заносится в первую переменную (murzik), вторая переменная (vaska) содержит пустую (нулевую) ссылку.
Обе переменных ссылаются на один объект. Теперь только vaska ссылается на объект, но не murzik. |
— А что будет, если просто создать объект и не присваивать его [ссылку] никакой переменной?
— Если просто создать объект и не присвоить его никакой переменной, то Java-машина создаст его и тут же объявит его мусором (неиспользуемым объектом). А через некоторое время удалит его в процессе «сборки мусора».
— А как мне уничтожить объект, если он мне больше не нужен?
— Никак. Как только не останется ни одной переменной, хранящей ссылки на данный объект, он будет помечен как мусор и убран: уничтожен Java-машиной при следующей «сборке мусора».
Пока есть хоть одна ссылка на объект, он считается живым и уничтожаться не будет. Если хочешь побыстрее уничтожить объект – обнули все ссылки на него: присвой всем переменным, ссылающимся на него, значение null.
— Понятно. Вроде и не сложно совсем после предыдущих уроков.
— Диего вчера сидел всю ночь и придумывал для тебя интересные задачи. Специально для тебя старался. У него отличное чувство юмора, кстати: