| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Объясните поведение |
| Автор: lamber 12.10.2011, 17:05 | ||
Объясните не понятное поведение с Java работаю не долго и возможно это баян, но все же. В Java все аргументы передаются по ссылке тогда внимание почему такое поведение, код ниже.
|
| Автор: Stolzen 12.10.2011, 17:27 |
Вот и нет. По значению они передаются. В других языках, например, в C# для этого есть аргументы ref и out - но в джаве их нет. |
| Автор: Nofate 12.10.2011, 17:31 |
| @lamber: Просто объекты являются ссылками, а ссылки переданные по значению остаются ссылками на то же место. Вот и кажется, что передача идет по ссылке. То есть в ваших методах вы работаете скопией ссылки на объект. Когда вы делаете DimArr = null, вы просто обнуляете вашу ссылку DimArr, сам объект это разумеется никак не затрагивает. То же самое относится и к другим присвоениям параметра внутри метода. |
| Автор: lamber 12.10.2011, 23:14 |
| 2Nofate и 2Stolzen Как же тогда выходит что изменяя значения внутри массива эти изменения сохраняются т.е. в том случае когда я пытаюсь изменить значение элементов массива все окей, но стоит мне попробовать изменить размерность массива как выходит что тут же я работаю с копией. |
| Автор: Nofate 13.10.2011, 09:00 | ||||
| Рассмотрим пошагово Случай 1.
Случай 2.
Надеюсь, стало понятнее. |
| Автор: lamber 13.10.2011, 11:01 |
| Господа спасибо за детальный разбор можно закрывать. |