Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpOlEC 51 of 147 menu
◀ ▶

Сравнение объектов через equals в Java

Для сравнения содержимого объектов вызывают equals у одного из них и передают второй как аргумент. У строк метод уже переопределён: сравниваются символы, а не ссылки. У своего класса логику равенства задают в переопределённом equals.

Класс Post сравнивает записи по заголовку:

class Post { public String title; public Post(String title) { this.title = title; } @Override public boolean equals(Object obj) { if (!(obj instanceof Post other)) { return false; } return title.equals(other.title); } }

Создадим три объекта и сравним каждую пару методом equals:

Post first = new Post("News"); Post second = new Post("News"); Post other = new Post("Draft"); System.out.println(first.equals(second)); System.out.println(first.equals(other));

Аргумент типа Object перед сравнением полей проверяют через instanceof. Если передали null или объект другого класса, результат - false:

Post post = new Post("News"); System.out.println(post.equals(null)); System.out.println(post.equals("News"));

Поля типа String внутри equals тоже сравнивают через equals, а не через ==:

String a = new String("News"); String b = new String("News"); System.out.println(a == b); System.out.println(a.equals(b));

Сделайте класс Employee с полем name. Переопределите equals по имени. Создайте два объекта с одинаковым именем и выведите результат equals.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить