Mail.ruПочта0Мой Мир0ОдноклассникиВКонтактеИгры0ЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что такое Instance (инстансы) в Java?

asdf ghjk Профи (612), закрыт 1 месяц назад
Добрый день!
Недавно начал изучать Java (по урокам Hexlet), и столкнулся с таким вопросом:
"Что такое Instance в Java и для чего они вообще нужны"?
Как я понял, экземпляр класса в Java создаётся так:

class Main {
public static void main(String... args) {
Game game = new Game();
}
}

Первое слово Game - это инстанс?
Почему нельзя написать так:

game = new Game();

Просто до этого изучал php, там экземпляры классов примерно так объявлялись.
Пока из-за этой темы не могу перейти к следующим урокам, так там "эти" инстансы везде используются.
Объясните пожалуйста новичку :))
Лучший ответ
Schweik Мыслитель (6359) 7 лет назад
instance это экземпляр класса (объект). Т. е. game это ссылка на instance (а поскольку в java все объекты доступны только по ссылке, можно говорить просто instance).

Game game = new Game();
объявляется переменная game типа Game и инициализируется созданным здесь же новым экземпляром (инстансом) Game

Почему нельзя написать так: game = new Game(); можно, если game объявлена ранее - язык то строго типизированный.
asdf ghjkПрофи (612) 7 лет назад
game это ссылка на Game? А что хранится в game и Game?
Game game; Обозначает создать объект game из класса Game. = new Game() - Выделяется память под новый объект размером в Game. При создании переменой вы должны указать что это за переменная (что бы виртуальная машина знала сколько места под переменную выделить). Если вы напишите Game game - то по идее память сразу будет выделена при компиляции (я учусь на си++ поэтому все таки джава существенно отливается, но принципы похожи) при использовании new Game() память выделиться только в момент этой инструкции из оперативы. Возможно в джава немного подругому...
Остальные ответы
Похожие вопросы