Я не понял объяснения лекции про конкотенацию (уровень 3, лекция 5)
что именно будет при сложении котов и символов(чисел)??
Даниил
22 уровень
Конкатенация
Обсуждается
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
22 ноября 2019, 11:47полезный
Если что-то (любой объект) сначала приклеить к строке, то объект перед конкатенацией сам преобразуется в строковое представление, и затем произойдет конкатенация (склеивание) двух строк: твоей и полученной от преобразования.
Если попытаться склеить между собой два объекта (двух котов, кота и число, что угодно с чем угодно (кроме строк)), то компилятор не поймет, что ты пытаешься сделать, и компиляция завершится ошибкой. Запомни, для конкатенации по крайней мере один из объектов должен быть строкой.
+2
Даниил
22 ноября 2019, 12:21
Спасибо за объяснение!
Стало немного понятнее
:)
0
Антон
22 ноября 2019, 14:02
А если ты еще используешь примитивы, то в первую очередь, обязательно должна идти строка.
+2
hidden #598481
22 ноября 2019, 14:16
Что? Я же написал, что для конкатенации двух объектов один из них должен быть строкой. Какая разница, примитивы или нет?
0
Антон
22 ноября 2019, 14:29
Разница в том, как работает JVM
https://javarush.com/quests/lectures/questsyntax.level03.lecture05
Так пройдет
String text = "Cat is " + cat + a + cat + a;
0
hidden #598481
22 ноября 2019, 14:55
Я не пойму, о чем спор и в чем противоречие моим словам?
Операции выполняются слева направо ⇒ результат первого действия "+" - строка ⇒ в каждом следующем действии один из операторов - строка, как я и говорил.
можно и так, какая разница? 0
Антон
22 ноября 2019, 15:07
Я не спорил, а дополнил.
А так можно?: String text = cat + a + "Cat is " + cat + a;
0
hidden #598481
22 ноября 2019, 15:09
Я просто не понял, к чему был такой акцент на примитивы, и чем они от других объектов тут отличаются.
Тут нужно скобки поставить, чтобы сначала было действие a + "Cat is ", а потом - хоть потоп ;)
0
Антон
22 ноября 2019, 15:11
Потому что примитивы это не объекты, у них нет наследственного метода toString().
0