Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

В Java можно ли создать аналог класса String??

ястреб ворон Мыслитель (7468), на голосовании 1 неделю назад
Вот в java мы объявляем элемет по типу
 Stroka str = new Stroka("Hello"); 
, а String работает по другому.
Мы сразу присваиваем.
 String str = 'Hello'; 
Можно ли в java сделать примерно тоже самое только с собственными классами??
И вот если мы пишем
 System.out.println(str);  
То здесь он автоматически возвращает элемент.
И не нужно писать что-то типа этого:
 System.out.println(str.value); 

Можно ли сделать также как и родительский класс String?? Если да, то как это сделать??
Голосование за лучший ответ
Unknown Unknown Гуру (4954) 1 месяц назад
Можно. Это одна из самых распространённых учебных задач.
Но String str = "Hello"; и String str = new String("Hello"); совершенно разные вещи. String str = "Hello"; создаёт новую строку в пуле строк, если в пуле строк нет строки с таким литералем.
Андрей Панарин Искусственный Интеллект (249033) 1 месяц назад
Конструктор придется вызывать явно, поскольку Java не позволяет изобретать собственный синтаксис, превращающий строковые литералы в объекты вашего класса.

А вот при выводе в консоль вы можете подать объект любого типа, и метод println дернет у него метод toString. Поэтому для вывода желаемого результата вам достаточно переопределить в классе Stroka метод toString, чтобы он возвращал value.
Александр Искусственный Интеллект (301506) 1 месяц назад
такое поведение странга "вшито" в джаву...

а чтобы выводило на печать как тебе нужно, переписываешь в своём классе метод

 @Override
public String toString() {
return и-зесь-ты-клеишь-какой-тебе-нужно-вывод-типа-стринг;
}
Похожие вопросы