Привет всем. Нашел решение на хабре, допилил под эту задачу, а что делает этот метод, не понимаю. Кто может, объясните, пожалуйста с комментариями построчно.
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Iphone other = (Iphone) obj;
if (model != other.model)
return false;
if (color != other.color)
return false;
if (price != other.price)
return false;
return true;
}
Anonymous #2730677
28 уровень
Объясните, пожалуйста, решение задачи.
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Диана Орлова-Моренец
12 декабря 2021, 14:05
К примеру, сравниваем 2 телефона:
Переопределяем метод equals(obj = iphone2):
Если сравниваемый объект (iphone1) == объекту, который передали в метод equals (iphone2), то вернуть true;
Если iphone2 пуст (в него не передали параметры), то вернуть false;
Если класс iphone1 не равен классу iphone2, то вернуть false;
Приводим obj (т.е. iphone2) к типу Iphone;
Если модель iphone1 не равна модели iphone2, то вернуть false;
Если цвет iphone1 не равен цвету iphone2, то вернуть false;
Если цена iphone1 не равна цене iphone2, то вернуть false;
Вернуть true;
Почитай эту статью, там подробно описывается как переопределить метод equals.
0
Anonymous #2730677
12 декабря 2021, 14:34
Привет. Спасибо за ответ.
Статью эту читал, ничего из нее не понял.
Что значит: переопределем метод? Что конкретно делается в этом случае?
Почему и с какой целью используется слово this?
Почему (obj), а не что-то другое сравнивается с null?
Откуда берется getClass и для чего он здесь нужен?
Что означает эта строка - Iphone other = (Iphone) obj;? Что она делает?
Остальные строки я понял так, что сравниваются параметры объектов(или объекта?), переданного в метод, между собой.
Поэтому я и просил объяснить построчно.
+1