Топ контрибуторов
loading
loading
Знаете ли Вы, что

Если у вас есть уникальная статья и вы хотите, чтобы она стала достоянием общественности, вы можете разместить ее на Quizful.

Лента обновлений
ссылка 14:57:26
Комментарий от sashka228:
согласна
ссылка 14:56:54
Комментарий от sashka228:
#ресоурсескотився
ссылка 14:54:17
Комментарий от sashka228:
yep.
ссылка 14:12:03
Добавлен вопрос в тест C++ - Средний уровень
ссылка 14:00:35
Комментарий от Anton_2015:
Гарне питання
Статистика

Тестов: 153, вопросов: 8596. Пройдено: 445775 / 2188339.

Правильное определение equals() и hashCode()

Вопрос из теста ООП в Java

Какое утверждение верно по отношению к данному коду:

public class Person {
    private String name;
    public Person(String name) {
        this.name = name;
    }
    public boolean equals(Person p) {
        return p.name.equals(this.name);
    }
} 
  • Метод equals неправильно переопределяет метод equals класса Object.

  • Возникнет ошибка компиляции в методе equals, так как из этого метода не доступно p.name.

  • Для того, чтобы класс корректно работал в любом контексте, он должен переопределить еще и метод hashCode класса Object

  • В методе equals не хватает вызова super.equals(this.name).