Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача парметров в метод 
:(
    Опции темы
Samotnik
Дата 27.3.2011, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



привет smile 
во многих книжках пишут, что примитивы передаются по значению, а объекты по ссылке. 
но недавно услышал иное мнение, пока говорит не буду smile у кого какие мысли по этому поводу smile
PM MAIL   Вверх
Nofate
Дата 28.3.2011, 09:17 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 4
Всего: 8



ИМХО, в случае java все передается по значению, а так как объекты представлены ссылками, то при передаче передается значение ссылки. Вроде бы это ничему не противоречит )


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
rang3r
Дата 29.3.2011, 20:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 2.4.2009

Репутация: нет
Всего: нет



Цитата

Передача параметров

Для параметров функций, методов, процедур в программировании существует понятие тип передачи параметра. Например, существуют понятия "передача параметра по значению" и "передача параметра по ссылке". В Java существует всего один тип передачи параметров — передача по значению. Это означает, что при вызове метода ему передается текущее значение параметра. Внутри метода можно произвольно изменять параметр, но это никак не повлияет, скажем, на переменную, которая была указана в качестве параметра вызова. Дело в том, что при передаче параметра выделяется необходимая область памяти, куда копируется значение параметра, и внутри метода работа идет с этой копией. Она будет уничтожена при выходе из метода.

Это нужно хорошо себе представлять, в особенности, когда передаются ссылки на объекты.

Рассмотрим пример. Пусть ref — ссылка на объект, передаваемая в качестве параметра при вызове некоторого метода h(...).

h(ref);
Внутри метода h мы можем изменить параметр метода (т.е. присвоить ему ссылку на другой объект), но это никак не повлияет на саму ссылку ref, т.к. при вызове создается копия ref и изменяется именно она. С другой стороны мы можем внутри h менять данные того объекта, на который ссылается ref, и это реально отразится на этом объекте, т.к. создается копия только ссылки, но не самого объекта.

 с http://www.javable.com/tutorials/fesunov/lesson2/
PM MAIL Skype   Вверх
Старовъръ
Дата 29.3.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 4
Всего: 10



Цитата
ИМХО, в случае java все передается по значению, а так как объекты представлены ссылками, то при передаче передается значение ссылки.
+1 Как-то услышал фразу, которая очень точно описывает это: "В Java все передается по значению. И ссылке тоже".
PM MAIL WWW   Вверх
kemiisto
  Дата 29.3.2011, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 5
Всего: 160



Цитата(Nofate @  28.3.2011,  07:17 Найти цитируемый пост)
ИМХО, в случае java все передается по значению, а так как объекты представлены ссылками, то при передаче передается значение ссылки. Вроде бы это ничему не противоречит ) 

1) Зачем тут чьё-то ИМХО, если можно на раз-два пруф запилить.  smile  The Java Language Specification
Цитата
When the method or constructor is invoked (§15.12), the values of the actual argument expressions initialize newly created parameter variables, each of the declared Type, before execution of the body of the method or constructor.

Болд мой. Тащемто, более чем достаточно. А уж чем там это value является - дело десятое.

2) Почти ничему не противоречит. Разве что здравому смыслу и грамотному проектированию ЯП. Но к Java это никаким боком. smile Так что ты прав, не противоречит. smile 

Это сообщение отредактировал(а) kemiisto - 29.3.2011, 21:53


--------------------
PM MAIL WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.