![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| bytes |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.10.2006 Где: Baku Репутация: нет Всего: нет |
Как эта реализована. В Джаве нет операторов. --------------------
?==! or !==? |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
-------------------- ![]() ![]() |
|||
|
||||
| bytes |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.10.2006 Где: Baku Репутация: нет Всего: нет |
OK Sposibo!
--------------------
?==! or !==? |
|||
|
||||
| bytes |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.10.2006 Где: Baku Репутация: нет Всего: нет |
А как быть если я хочу создат "новой" класс, например: Int32
Это сообщение отредактировал(а) bytes - 24.6.2008, 16:48 --------------------
?==! or !==? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Никак, ни перегрузить для него оператор, ни добавть для него autoboxing - нельзя. Только добавить в него методы add(), mul() и т.д. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| bytes |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.10.2006 Где: Baku Репутация: нет Всего: нет |
А как эта с Int, Short, Long -ом происходит тогда? Волшебство
--------------------
?==! or !==? |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
Не волшебство, а javac
Это сообщение отредактировал(а) Dummy - 24.6.2008, 22:37 |
|||
|
||||
| bytes |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.10.2006 Где: Baku Репутация: нет Всего: нет |
Эта минус... или операторы не должны были быть, или доступно для программера.
--------------------
?==! or !==? |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
Сильное высказывание))) Вообще, перегрузка операторов и ее отсутствие в Java - это уже, ИМХО, из разряда холиваров. Лично я склоняюсь к тому, что нет ее - и не нужна она. Потому что список типов, для которых перегруженные операторы могут иметь более-менее однозначный смысл, весьма ограничен, и в основном это примитивные типы. С введением автобоксинга эффект перегрузки для типов Int, Short и т. п. был создан. Что касается более сложных типов, всяческих пользовательских классов и т. д. - тут лучше все же создать функцию с ясным именем, из которого становится понятно, что делает эта функция, без лишнего копания по документации, вместо того, чтобы творить оператор + или -, который работает некоторым образом, очевидным только для его создателя. |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Операторы в джаве есть... В ее диалекте... с++ называется ;)
Ну а если серьезно, то пишите на с++, ну или на чем душе угодно, и будет вам счастье. А если бы джаве были бы всякие бяки по типу *указателей и прочего, то это уже не была бы джава, а очередной с++, только запускался бы он в JVM. Да и как сказал LSD, куда нагляднее создать статический метод MyClass.add(object1, object2) чем гадать что же означает этот плюсик, и почему вдруг оно работает не так Это сообщение отредактировал(а) SoulKeeper - 25.6.2008, 14:45 |
|||
|
||||
| Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 4 Всего: 72 |
Окей, представь что у тебя есть класс Matrix, и сложение матриц производится вызовом метода add существующего объекта, в качестве аргумента передаётся второй объект (ссылка указывает на идентичный метод библиотеки commons-math). Не кажется, что использование оператора + было бы вполне уместно? Что есть, то есть. Идеология Java заключается в упрощении синтаксических конструкций. Если кому-то хочется большей свободы на базе JVM, рискну предложить попробовать на вкус scala, там можно играться с перегрузкой операторов. |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Оно то уместно, но с другой стороны прийдется учитывать много разных кейсов т.к.
1). Неизвестно что собой являет + для re + that.re, и как глубого оно идет 2). Неизвестно как обрабатывать всякие єксепшены, если вдруг одно проперти окажется null 3). Еше много кейсов которые вылезут в процессе активного использования В общем, на вкус и цвет, но, по моему, куда лутше использовать наглядные вызовы чем экономить на спичках (десятке букв для вызова |
|||
|
||||
| Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 4 Всего: 72 |
То же самое можно сказать и про вызов add() |
|||
|
||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Нельзя.
В джаве я на 100% уверен что 2+2 = 4, а так я еше должен лезть в обьект и смотреть что за тип у филда, как обрабатывается + и прочее в том же духе. Такие вещи осложняют чтение кода. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |