Member 13735702 Ответов: 1

Почему вывод system.out.println(новый сотрудник) - это адрес, а вывод system.out.println(новая дата) - сегодняшняя дата ?


вывод следующей программы:
о/р:
Сотрудник@------(какой-то адрес)
сегодняшняя дата

почему объект предопределенного класса Date ведет себя иначе, чем объект пользовательского класса, когда он передается методу println?

Что я уже пробовал:

импорт java.util.*;
импорт java.time.*;

классный работник(){
// Пустой
}

класс основной{
публичный статический пустота главный(строка[] аргументы){
System.out.println(новый сотрудник); //объект пользовательского класса
System.out.println(new Date); // объект предопределенного класса Date
}
}

1 Ответов

Рейтинг:
1

Jochen Arndt

При звонке print() или println() проходя мимо объекта, String.valueOf(объект)[^]
вызывается метод и выводится возвращаемая строка (см. PrintStream (Java Platform SE 7 )[^] ). Таким образом, выход зависит от того, как toString() метод реализован для объекта (toString() наконец, вызывается, когда объект не является нулевым).

Для Date объект см. Date.toString() (Java Platform SE 7 )[^].

Для пользовательского объекта вы должны реализовать метод и определить, что должно быть возвращено.