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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маленький тест, :) 
:(
    Опции темы
Kangaroo
Дата 6.1.2008, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



Цитата(v2v @  6.1.2008,  00:00 Найти цитируемый пост)
написать свой класс и в нём перегрузить оператор "+" и не перегружать "+=" 

Oh my God...  smile 
Все проще. 

Нужно просто знать оператор "+=". Например, с какими типами он работает, а с какими нет....
+
Можно посмотреть Second JLS - там это описано в одной фразе.
Странно, но в Third JLS этой фразы я не нашел... 


--------------------
Lost....
PM MAIL MSN   Вверх
serger
Дата 8.1.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

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



Опустили, демоны. :( Да я лет 5 назад использовал char как безнаковое 2 байта.
С тех пор просто забыл, что такое возможно. Просто принципиально для меня все типы знаковые. Спасибо просветили. smile

Щас ещё внимательно прогнал тесты. Всё правильно работает. Единственно надо быть аккуратным в арифметике при обратном приведении к беззнаковому типу...

Код

int j=0;
char c = (char)(j-1);
System.out.println((int)c);


Может слегка надуманная проблема, но в определённых ситуациях вполне реальная.



--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Kangaroo
Дата 8.1.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



Цитата(serger @  8.1.2008,  13:17 Найти цитируемый пост)
Спасибо просветили

Да не за что smile Просто иногда лучше проверить, чем упираться.

Что с 10 заданием, господа тестировщики?? Выкладывайте, кто что придумал
Сегодня вечером постараюсь продолжить.




--------------------
Lost....
PM MAIL MSN   Вверх
Platon
Дата 8.1.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Ахренеть!!! Земляка встретил!!! 
serger, какими судьбами?!

PM MAIL ICQ   Вверх
v2v
Дата 9.1.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



smile не могу найти в Second JLS нужной фразы...
может начинать сравнивать 2ю спецификацию с третьей... по строках))

Добавлено @ 17:41
нашёл строку которая есть во второй , но нету в третьей JSL ... но она немного не подходит)


"All compound assignment operators require both operands to be of primitive type"
но у меня это не выполняется =(


Это сообщение отредактировал(а) v2v - 9.1.2008, 17:51


--------------------
PM   Вверх
Kangaroo
Дата 9.1.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



Цитата(v2v @  9.1.2008,  16:37 Найти цитируемый пост)
нашёл строку которая есть во второй , но нету в третьей JSL ... но она немного не подходит

Ну там не прямым текстом написан ответ smile просто она наводит на решение...


Цитата(v2v @  9.1.2008,  16:37 Найти цитируемый пост)
"All compound assignment operators require both operands to be of primitive type"

Необязательно... ща я посмотрю.

PS
Продолжение фразы:
Цитата

except for +=, which allows the right-hand operand to be of any type if the left-hand operand is of type String

Вот оно должно помочь  smile  чуть-чуть, но должно.

Это сообщение отредактировал(а) Kangaroo - 9.1.2008, 17:57


--------------------
Lost....
PM MAIL MSN   Вверх
v2v
Дата 9.1.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



как оно может помочь , если оно наоборот увеличивает возможности "+="  в сравнении с "+".
в общем я в тупике ) .


--------------------
PM   Вверх
nornad
Дата 9.1.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Kangaroo, давай уже решение, всё равно либо народ не заинтересовался, либо мыслей нет. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
niasilil
Дата 9.1.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(nornad @ 9.1.2008,  18:23)
Kangaroo, давай уже решение, всё равно либо народ не заинтересовался, либо мыслей нет. smile

второе smile


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Platon
Дата 9.1.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Цитата(nornad @  9.1.2008,  19:23 Найти цитируемый пост)
либо мыслей нет.

Ваабще весь моск прожег.

Это сообщение отредактировал(а) Platon - 9.1.2008, 18:33
PM MAIL ICQ   Вверх
nornad
Дата 9.1.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Значит, я один не заинтересовался.  smile 
Но ответ и объяснение (если неочевидно решение) услышать хотелось бы.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Kangaroo
Дата 9.1.2008, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



Ну что ж  smile 
Ответ озвучит компилятор  smile :
Цитата

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The operator += is undefined for the argument type(s) Object, String


Ща выложу объяснения...


--------------------
Lost....
PM MAIL MSN   Вверх
nornad
Дата 9.1.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Ты ещё и код выложи.  smile 
А то сдаётся мне, что это дело изменилось не только в книжке.

Добавлено через 2 минуты и 48 секунд
Код

        Object x = new Object();
        String i = "";
        x = x + i; // компилируется
        x += i; // компилируется

Код

        Object i = new Object();
        String x = "";
        x = x + i; // компилируется
        x += i; // компилируется

Java - 1.6.02 (кажется 02 - влом "вспоминать" в ком. строке smile)


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Kangaroo
Дата 9.1.2008, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



nornad, это уже становится интересно  smile 

Цитата

java version "1.6.0_01"
Java™ SE Runtime Environment (build 1.6.0_01-b199)
Java HotSpot™ Client VM (build 1.6.0-b105, mixed mode)


Код такой же. 
javac выдает такое:
Цитата

Tweedledum.java:16: incompatible types
found   : java.lang.Object
required: java.lang.String
        x += i; // ъюьяшышЁєхЄё 
        ^
1 error


Eclipse выдает такое:
Цитата

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The operator += is undefined for the argument type(s) Object, String


Это что же, мы стали свидителями прогресса Java'ы?  smile  Исправили, чтобы люди не мучались.


--------------------
Lost....
PM MAIL MSN   Вверх
Kangaroo
Дата 9.1.2008, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



А вот как это можно было вывести (я, кстати, тоже не справился  smile ):
Утверждение про "compound assignment" (-=, +=, etc.) . Как мы выяснили - уже устаревшее  smile :
Цитата

All compound assignment operators require both operands to be of primitive type except for +=, which allows the right-hand operand to be of any type if the left-hand operand is of type String


Утверждение про Assignment Conversion (JLS 5.2), то есть про =
Цитата

If the type of an expression can be converted to the type of a variable by assignment conversion, we say the expression (or its value) is assignable to the variable or, equivalently, that the type of the expression is assignment compatible with the type of the variable.


Вот с помощью их и получаем код:
Код

     Object x = new Object();
        String i = "a";
        x = x + i;
        x += i;


Это сообщение отредактировал(а) Kangaroo - 9.1.2008, 21:20


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

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

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


 




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


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

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