Вывод объекта в Java — переопределение метода toString
Что будет, если просто передать объект в System.out.println()? По умолчанию Java выведет имя класса и хеш-код. Чтобы вывод был осмысленным, нужно переопределить метод toString().
Пример 1: программа на Java для печати объекта
class Test {
}
class Main {
public static void main(String[] args) {
// create an object of the Test class
Test obj = new Test();
// print the object
System.out.println(obj);
}
}
Вывод:
Test@512ddf17
В этом примере мы создали объект класса Test. При печати объекта получается необычный вывод.
Так происходит потому, что при печати объекта вызывается метод toString() класса Object. Он форматирует объект в виде по умолчанию:
Примечание
Test — имя класса
@ — соединительный символ
512ddf17 — значение хеш-кода объекта
Если нужно отформатировать вывод по-своему, метод toString() следует переопределить внутри класса. Например:
class Test {
@Override
public String toString() {
return "object";
}
}
class Main {
public static void main(String[] args) {
// create an object of the Test class
Test obj = new Test();
// print the object
System.out.println(obj);
}
}
Вывод:
object
В этом примере вывод изменился, потому что мы переопределили метод toString(), чтобы он возвращал строку "object".
Совет
Подробнее о методе toString() класса Object можно почитать в справочнике по Object.toString().