Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет alamar ([info]alamar)
@ 2009-04-09 00:17:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Тут мне впаривают
Что в язык Java нет передачи параметров в метод по ссылке.

Я пока не покупаю. Кажется, это происходит, когда привычка применять термины есть, а понимания, что за ними стоит, нету.

Хотя в принципе считаю термины типа "передача значений по ссылке" и "передача ссылки, как значения" идиотскими. Мне ещё давече в ##java пытались ими моск ипать. Из чего и следует отсутствие понимания, как я сказал чуть выше.


(Читать комментарии) - (Добавить комментарий)


[info]ketmar
2009-04-10 02:49 (ссылка)
ну так нету же. откуда бы ему взяться, если int, например, ни разу не класс?

алсо, что не так-то с терминами? byref, byval — всё очевидно же. в первом случае передаётся ссылка на объект, во втором — некое значение объекта. с объектами в жабе как раз всё гладко, а вот с ортогональностью (да-да, ещё один термин %-) — нет. потому что дизайнер жабы хуйло и мудак.

(Ответить) (Ветвь дискуссии)


[info]alamar
2009-04-10 10:02 (ссылка)
Ну так int не класс, но объекты-классов то чай передаются.

По поводу хуйла и мудака сейчас ясно, но тогда они хотели, как лучше.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ketmar
2009-04-10 15:37 (ссылка)
вот о чём я и говорю. если чего-то нельзя сделать (передать int по ссылке) — то этого напрочь нет. (прочитав беседы) и Куздра таки прав, говоря, что и объекты, если быть дотошным, никуда не передаются, а их ссылки передаются по значению. и, кажется, даже жабостандарт это же самое говорит — что нет в жабе byref. что, конечно, не значит полного отсутствия возможности таки достать гланды через анус.

>По поводу хуйла и мудака сейчас ясно, но тогда они хотели, как лучше.
ему сразу говорили, что «воля ваша, но что-то несуразное у вас получается». но чувак был молодой (относительно, хихик), задорный… а потом жабу начали продавать, и переделывать стало поздно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]alamar
2009-04-10 16:12 (ссылка)
"ссылки передаются по значению"
Вот это понятие мне очень не нравится.
Оно как бы подразумевает, что ссылку можно передать ещё как-либо, кроме как по значению.
При этом других способов передачи ссылки нет - ссылка штука хрупкая, при попытке взять ссылку на ссылку получается указатель на указатель.

Поэтому нельзя употреблять в отношении жавы "передача по ссылке", и "передача по значению" тоже нельзя, call-by-sharing единственный более-менее верно описывает наблюдаемый феномен.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ketmar
2009-04-10 16:37 (ссылка)
неа, не получается. получится вполне кошерная ссылка на ссылку, которая именно ссылка, а не указатель. см. Object Pascal, например. где a: TClass даёт в результате именно ссылку на экземпляр TClass (которая выглядит как «нормальная» переменная), и в то же время можно передать это в процедуру, где (var arg: TClass).
получаем вполне себе ссылку на ссылку, это работает и даже имеет смысл. и вот как раз такой штуки жаба сделать не может. жаба может только (arg: TClass), и всё.

отсюда вполне логично, поскольку объявление Class foo в жабе (как и в OP) является именно объявлением *ссылки*, то эта самая ссылка передаётся по значению потом. в жабе это единственный вариант передачи, в OP — нет.

(Ответить) (Уровень выше)


(Читать комментарии) -