Топ-100Object. Метод toString и его переопределение - CodOrbits
LogoCodOrbits

Раздел: Java Core

Раздел охватывает ключевые возможности языка Java: аннотации, исключения, generics, лямбда-выражения, интерфейсы и другие базовые концепции.

Все разделы
Иконка Java Core

Object. Метод toString и его переопределение

Last updated: 5 мая 2025 г.

Все классы в Java наследуют от некого класса Object.

В этом классе определены некоторые важные методы, которые необходимо знать и самое главное уметь переопределять их.

Все классы как уже было сказано наследуют от Object, а значит они наследуют и все методы, которые определены в нем, а значит наследники могут ими пользоваться и переопределять их.

Рассмотрим самые важные.

Первым рассмотрим toString.

По умолчанию метод toString возвращает хеш-код объекта. Хеш-код мы затронем позже.

Но информация о хеш-коде объекта не особо полезна, поэтому принято переопределять метод toString так чтобы toString возвращал всю полезную информацию об объекте (содержимое его полей).

Пример программы:

1class MyClass {
2    int myA;
3    Integer myB;
4
5    MyClass(int myA, int myB) {
6        this.myA = myA;
7        this.myB = myB;
8    }
9
10    // toString – предоставление информации об объекте.
11    // Как видим ниже, он возвращает строку
12    // со значениями полей объекта,
13    // то есть это вся необходимая информация о нем.
14    // Переопределять этот метод желательно именно
15    // в формате вот такой строки.
16    // Причем программисту даже не нужно будет писать
17    // имя метода toString для его вызова –
18    // этот метод будет вызываться автоматически, если
19    // попытаться передать объект в println,
20    // вот так: System.out.println(someobject);
21    // где someobject – объект класса MyClass.
22    // Смотри пример ниже в main.
23    @Override
24    public String toString() {
25        return "MyClass{" + "myA=" + myA + ", myB=" + myB +};
26    }
27}
28
29public class ToStringLesson {
30    public static void main(String[] args) 
31        throws CloneNotSupportedException {
32        MyClass someobject = new MyClass(10, 20);
33
34        // Как можно увидеть, в консоли вывело ту самую
35        // строку с полями объекта someobject.
36        // При этом, как уже говорилось, нам не пришлось
37        // вызывать метод toString вот так someobject.toString();
38        System.out.println(someobject);
39    }
40}

Вывод:


Следующие уроки

Метод Clone и его переопределение

14
мин.

Similar Articles Icon
Divider

Метод Equals и его переопределение

14
мин.

Similar Articles Icon
Divider

Метод hashCode и его переопределение

16
мин.

Similar Articles Icon