Object

Проработать:

  1. Java hashCode() and equals() Methods
  2. Разбираемся с hashCode() и equals()
  3. Клонирование объектов в Java. Пример использования метода clone()
  4. EqualsAndHashcode
  5. Как правильно клонировать объект?

Что это

Object - суперкласс для всех классов в JAVA, кроме примитивов. Необходим для предоставления основных методов в каждый java класс.

Методы:

Правила переопределения equals():

  1. Рефлексивность - a.equals(a).
  2. Симетричность - a=b, b=a.
  3. Транзитивность - a=b, b=c, a=c.
  4. Согласованость - каждый раз одинаковый результат.
  5. Проверка на NULL - если NULL вернуть false.

Пример equals(Object obj):

public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj == null || obj.getClass() != this.getClass()) {
return false;
}

Person guest = (Person) obj;
return a == guest.a && b.equals(guest.b) && c.equals(guest.c) //Если ссылочная переменная то equals()
}

Пример hashcode():

public int hashCode() {
return Objects.hash(a, b, c);
}

Договор(контракт) между equals() и hashcode():