for (int i = 1; i < 11; i++) {
Zerg zerg = new Zerg();
zerg.name = "zerg: " + i;
System.out.println("Матка родила: " + zerg.name);
}
Скажите, пожалуйста, правильно ли я понял, что тут происходит:
1) Создается объект zerg типа Zerg, которому присваивается ссылка на объект
2) Далее мы присваиваем ссылочной переменной zerg имя
3) Выводим строку
4) Выполняем цикл 10 раз, при это !ВНИМАНИЕ! каждый раз пересоздаем один и тот же объект, и даем ему новое имя, в то время как прошлые объекты убирает мусоросборщик.Lesha Koshmanov
20 уровень
Правильно ли я понял, что происходит в куске кода задачи?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
27 декабря 2017, 21:33решение
1) Да
2) Полю name созданного в пункте 1 объекта zerg присваивается значение
3) Да
4) Объект zerg объявляется внутри цикла, поэтому и существует только до конца цикла, а при новой итерации объявляется и создается полностью заново
+3
Lesha Koshmanov
27 декабря 2017, 21:37
то есть каждое одиночное прохождение цикла объект умирает?
0
--------Master
27 декабря 2017, 21:42полезный
Да, нигде больше не хранится и не используется - только в каждом из проходов
+1
javapiton cplus
15 февраля 2018, 06:20
И какое есть решение данной проблемы?
0
--------Master
15 февраля 2018, 07:42полезный
А о какой именно проблеме идет речь? В задаче сказано создавать объекты, но ничего больше с ними не делать - они и создаются, но нигде не используются. Если бы объекты нужны были позже, можно было использовать, например, массив или список
+1