Решение не проходит валидацию по второму пункту (Метод equals должен возвращать true для двух равных объектов типа Iphone и false — для разных.) Никак не пойму в чем ошибка. По всякому тестировал.
И второй вопрос. Мы переопределяем метод equals. То есть меняем правила его функционирования. Но при том в самом процессе переопределения применяем метод equals. То есть создаем новый метод и при этом в теле метода его же и используем. В голове не очень укладывается. Мы процессе создания молотка используем молоток. Не понятно!
package com.javarush.task.pro.task10.task1010;
import java.util.Objects;
/*
Два айфона
*/
public class Iphone {
private String model;
private String color;
private int price;
public Iphone(String model, String color, int price) {
this.model = model;
this.color = color;
this.price = price;
}
//напишите тут ваш код
@Override
public boolean equals(Object obj) {
Iphone iphone = (Iphone) obj;
if (this == null || obj == null || getClass() != obj.getClass()) return false;
else if (price == iphone.price && model.equals(iphone.model) && color.equals(iphone.color))
return true;
else return false;
}
public static void main(String[] args) {
Iphone iphone1 = new Iphone("X", "Black", 999);
Iphone iphone2 = new Iphone("X", "Black", 999);
System.out.println(iphone1.equals(iphone2));
}
}