Всем привет!
Ребят, подскажите, в чем может быть проблема. Тестирую с разными созданными объектами, вроде как, все верно, но валидатор не пропускает.
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;
}
public boolean equals(Object obj) {
// Если обьек, у которого вызвали метод equals равен переданному обьекту;
if (this == obj) {
return true;
}
// Если переданный обьект равен null;
if (obj == null) {
return false;
}
// Если переданный обьект не класса "Iphone";
if (!(obj instanceof Iphone)){
return false;
}
// Операция приведения типа;
Iphone x = (Iphone) obj;
// Далее сравниваем внутринности двух обьектов;
// Если поля "price" не равны у двух сравниваемых обьектов;
if (this.price != x.price) {
return false;
}
// Сравниваем у двух обьектов поля "model" на null;
if (this.model == null ) {
return x.model == null;
}
// Сравниваем у двух обьектов поля "model" на null;
if (this.color == null) {
return x.color == null;
}
// Если программа дошла до этой строчки - сравниваем у двух обьевтов поля "model" и "color"
return this.model.equals(x.model) && this.color.equals(x.color);
}
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));
}
}