В чем разница между созданием объекта:
Person person = new Person();
и вот таким вариантом записи:
new Person();
Anonymous #2988619
39 уровень
Объясните, пожалуйста
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
16 февраля 2022, 09:11
Разница в том, что в первом случае у тебя есть ссылка на объект, а во втором просто объект который будет собрать сборщиком мусора при первой же возможности. Ну и что-либо делать с этим объектом ты будешь не в состоянии.
Но вторая форма записи может быть удобнее если ссылка на объект создастся под капотом, например добавление нового объекта Person в массив\список. Тогда вы сможете оперировать созданным объектом запросив его из массива.
Так же можно обойтись без переменной иногда, если создавать новый объект передавая его в метод\конструктор другого класса.
Например для реализации корректной рекурсии иногда требуется передать в новый вызов рекурсивного метода новый же объект, что бы старый своим состоянием не искажал логику метода.
0
НикитаExpert
14 февраля 2022, 19:28
Во втором случае у тебя нет возможности обратится к созданному объекту. Например вот так
+1
Anonymous #2988619
16 февраля 2022, 07:24
А для чего тогда подобная форма записи? Просто для единоразового вызова метода, например?
0
НикитаExpert
16 февраля 2022, 09:00
к примеру да, или можно передать объект в конструктор. как например передается InputStreamReader в BufferedReader
0