|
|
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
Сейчас читаю Экеля, не много не понял про автоматическое преобразование типов. На счет числовых типов данных вроде понятно : при расширении типа происходит автоматический каст, при съужении надо явно указывать. А вот про стриг не понял: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Какие правила использует компилятор? Т.е. если первый операнд есть String тогда все последующие преобразуем тоже в стринг. Тогда следуя данной логике, имея первый операнд ИНТ (второй случай), все последующии тоже должны преобразовываться в ИНТ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 13:24:47 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
Порядок сумы не изменяет... System.out.println() автоматически вызывает подходящий toString() метод, для всех примитивных типов и обьектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 13:47:48 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
а если так: то просто получим exception несовместимость типов. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 13:54:45 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
CybПорядок сумы не изменяет... System.out.println() автоматически вызывает подходящий toString() метод, для всех примитивных типов и обьектов. Т.е. особенности реализации оператора +? просто в С++ если пишем: operator + (int,string) и operator + (string, int) это есть разные вещи. а тут получается не важно какой оперант первый а какой второй, все равно число приводим к string. Так? Или че-то путаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 14:01:58 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
CybПорядок сумы не изменяет... System.out.println() автоматически вызывает подходящий toString() метод, для всех примитивных типов и обьектов. И как println может вызывать какие-либо функции преобразования если все эти преобразования должны быть по идее сделаны ДО входа в тело println? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 14:09:19 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
bemtaillпреобразования должны быть по идее сделаны ДО входа в тело println? Это уже особенности Java... У Экеля об этом где-то было написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 16:11:44 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
bemtaillа тут получается не важно какой оперант первый а какой второй, все равно число приводим к string В println это так. А если попробуешь так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 16:24:22 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
Cyb bemtaillа тут получается не важно какой оперант первый а какой второй, все равно число приводим к string В println это так. А если попробуешь так: Код: plaintext 1. 2. Спасибо, пока приму на веру, буду дальше читать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 16:31:29 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
Друзья, что за охинея. Вычисления в java выполняются слева на права, присвоения выполняются с права на лево. Оператор + переопределён так, что если один из его операндов строка, то второй переводится в строку вызовом toString. Итого: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 16:33:18 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#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:46:28 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#18+
CybSystem.out.println() автоматически вызывает подходящий toString() метод Ошибочка вышла ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 16:48:31 |
|
||
|
Преобразование типов
|
|||
|---|---|---|---|
|
#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 перед сложением сначала будет преобразована в строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 23:28:28 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2147583]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 486ms |

| 0 / 0 |
