Класс Object в Java. Метод toString и его переопределение

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

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

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

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

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

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

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

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

class MyClass { int myA; Integer myB; MyClass(int myA, int myB) { this.myA = myA; this.myB = myB; } // toString – предоставление информации об объекте. // Как видим ниже, он возвращает строку // со значениями полей объекта, // то есть это вся необходимая информация о нем. // Переопределять этот метод желательно именно // в формате вот такой строки. // Причем программисту даже не нужно будет писать // имя метода toString для его вызова – // этот метод будет вызываться автоматически, если // попытаться передать объект в println, // вот так: System.out.println(someobject); // где someobject – объект класса MyClass. // Смотри пример ниже в main. @Override public String toString() { return “MyClass{” + “myA=” + myA + “, myB=” + myB + ‘}’; } } public class ToStringLesson { public static void main(String[] args) throws CloneNotSupportedException { MyClass someobject = new MyClass(10, 20); // Как можно увидеть, в консоли вывело ту самую // строку с полями объекта someobject. // При этом, как уже говорилось, нам не пришлось // вызывать метод toString вот так someobject.toString(); System.out.println(someobject); } }

Вывод:

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

Разберитесь с методом clone в Java: как клонировать объекты, включая ссылочные поля. Практические примеры переопределения clone для глубокого копирования.

Time to read: 14

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

Как правильно сравнивать объекты в Java: подробный гайд по переопределению equals(). Учимся проверять эквивалентность объектов.

Time to read: 14

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

Поймите важность метода hashCode в Java: как правильно переопределять его для работы с HashSet и HashMap, чтобы избежать дублирования элементов.

Time to read: 16