2013-04-20 5 views
-2

Если в функции, вызываемой рекурсивно с меньшими аргументами и внутри этой функции, мы создаем объект класса. Объекты, созданные рекурсивно, будут иметь одно и то же имя, поэтому мы не можем сохранить уникальность имени. Как мы можем обрабатывать такие случаи на Java?Рекурсивно вызывать функцию в Java, которая создает новые объекты

+0

У вас есть код -example? – Maroun

+4

Объекты не имеют имен. Переменные имеют имена, но у них также есть область. –

ответ

2

Я думаю, что этот вопрос возникает из-за недоразумений. В Java имя, которое вы даете локальной переменной, на 100% не имеет значения во время запуска кода - единственная цель для вас, программист, указать, какую переменную вы говорите (давая свое имя и имея компилятор выяснить, что вы имеете в виду, просматривая локальную область действия, область действия над ней и т. д.).

Итак, если у вас есть рекурсивный метод, который вызывает себя, и в этом методе объявляют переменные, которые хранят новые объекты, то нет никакого столкновения с Java, и все они будут правильно ссылаться на разные объекты в разных местах в памяти.


Если вы на самом деле имел в виду: «Я хочу, чтобы записать все новые объекты я делаю в моем рекурсивный метод, но у них быть отчетливо относимые к», то начните с создания коллекции (ArrayList, например) один из параметры к вашему рекурсивному методу - тогда вы можете добавить все вновь созданные объекты в эту коллекцию, и когда он полностью вернется, он будет полон ваших вновь созданных объектов. Но если это недостаточно различает, то вам нужно спросить: «Что бы отличить эти объекты?» который будет зависеть от того, для чего предназначен объект (должен ли какой-то параметр рекурсивного метода быть частью «имени»? какое-то другое состояние? или просто нужно быть случайным и уникальным?).

+0

Вы правы. Но искатель также хочет получить доступ к старым объектам – shiladitya

+0

@shiladitya: где вы находите такой запрос в вопрос? –

+0

Это то, что я сделал, иначе вопрос не имел смысла :) – shiladitya

Смежные вопросы