
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.11.2006, 13:24:47
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
Сейчас читаю Экеля, не много не понял про автоматическое преобразование типов. На счет числовых типов данных вроде понятно : при расширении типа происходит автоматический каст, при съужении надо явно указывать. А вот про стриг не понял: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Какие правила использует компилятор? Т.е. если первый операнд есть String тогда все последующие преобразуем тоже в стринг. Тогда следуя данной логике, имея первый операнд ИНТ (второй случай), все последующии тоже должны преобразовываться в ИНТ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 13:47:48
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
Порядок сумы не изменяет... System.out.println() автоматически вызывает подходящий toString() метод, для всех примитивных типов и обьектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 13:54:45
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
а если так: то просто получим exception несовместимость типов. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 14:01:58
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
CybПорядок сумы не изменяет... System.out.println() автоматически вызывает подходящий toString() метод, для всех примитивных типов и обьектов. Т.е. особенности реализации оператора +? просто в С++ если пишем: operator + (int,string) и operator + (string, int) это есть разные вещи. а тут получается не важно какой оперант первый а какой второй, все равно число приводим к string. Так? Или че-то путаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 14:09:19
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
CybПорядок сумы не изменяет... System.out.println() автоматически вызывает подходящий toString() метод, для всех примитивных типов и обьектов. И как println может вызывать какие-либо функции преобразования если все эти преобразования должны быть по идее сделаны ДО входа в тело println? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 16:11:44
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
bemtaillпреобразования должны быть по идее сделаны ДО входа в тело println? Это уже особенности Java... У Экеля об этом где-то было написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 16:24:22
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
bemtaillа тут получается не важно какой оперант первый а какой второй, все равно число приводим к string В println это так. А если попробуешь так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 16:31:29
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
Cyb bemtaillа тут получается не важно какой оперант первый а какой второй, все равно число приводим к string В println это так. А если попробуешь так: Код: plaintext 1. 2. Спасибо, пока приму на веру, буду дальше читать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 16:33:18
|
|||
|---|---|---|---|
|
|||
Преобразование типов |
|||
|
#18+
Друзья, что за охинея. Вычисления в java выполняются слева на права, присвоения выполняются с права на лево. Оператор + переопределён так, что если один из его операндов строка, то второй переводится в строку вызовом toString. Итого: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 16:46:28
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
NotGonnaGetUsДрузья, что за охинея. Вычисления в java выполняются слева на права, присвоения выполняются с права на лево. Оператор + переопределён так, что если один из его операндов строка, то второй переводится в строку вызовом toString. Итого: Код: plaintext 1. 2. 3. 4. 5. 6. Да я ж учусь тока... Хотя я выдвигал такое предположение, но оно не подтвердилось: http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=358482&mid=3358024&p=1&act=quot#3357901 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 16:48:31
|
|||
|---|---|---|---|
Преобразование типов |
|||
|
#18+
CybSystem.out.println() автоматически вызывает подходящий toString() метод Ошибочка вышла ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2006, 23:28:28
|
|||
|---|---|---|---|
|
|||
Преобразование типов |
|||
|
#18+
автор int x = 0, y = 1, z = 2; String sString = "x, y, z "; System.out.println(sString + x + y + z); int x = 0, y = 1, z = 2; String sString = "x, y, z "; System.out.println( sString + (x + y + z) ); Нужно учитывать приоритетность выполнения операций. Сначала будет выполнено то, что в скобках. Потом при сложении произойдет преобразование полученного числа в строку, а потом будет выведена полученная строка. Если не ставить скобки, то произойдет сложение слева направо, причем каждая переменная x y и z перед сложением сначала будет преобразована в строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2147583]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 459ms |

| 0 / 0 |
