и посмотреть медиа
Tester | Interview Questions
и посмотреть медиа
Interview questions for testers.
Interview questions for testers.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Testing questions: ISTQB, Selenium, API. With examples.
🤔 Что делает метод equals()? Метод equals() используется для сравнения двух объектов на семантическое равенство (т.е. их содержимого, а не просто ссылок в памяти). 🚩Как работает `equals()` по умолчанию Метод equals() определён в классе Object, от которого наследуются все классы в Java public boolean equals(Object obj) { return (this == obj); } 🚩Зачем переопределять `equals()`? Если мы работаем с объектами, у которых важно содержимое (например, строки, пользователи, книги), то сравнение по ссылке не подходит. class User { String name; User(String name) { this.name = name; } } public class Main { public static void main(String[] args) { User user1 = new User("Alice"); User user2 = new User("Alice"); System.out.println(user1.equals(user2)); // false, т.к. сравниваются ссылки } } 🚩Как правильно переопределить `equals()` При переопределении equals() важно учитывать: Рефлексивность: x.equals(x) всегда true. Симметричность: x.equals(y) == y.equals(x). Транзитивность: если x.equals(y) и y.equals(z), то x.equals(z). Согласованность: результат вызова equals() не меняется, если объект неизменяемый. Сравнение с null: x.equals(null) всегда false. class User { String name; User(String name) { this.name = name; } @Override public boolean equals(Object obj) { if (this == obj) return true; // Проверяем, не сравниваем ли объект сам с собой if (obj == null || getClass() != obj.getClass()) return false; // Проверяем типы User user = (User) obj; // Приводим obj к типу User return name.equals(user.name); // Сравниваем содержимое } } public class Main { public static void main(String[] args) { User user1 = new User("Alice"); User user2 = new User("Alice"); System.out.println(user1.equals(user2)); // true, теперь работает корректно } } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!