Прочитал статью про переопределение метода equals. Сделал по аналогии, но второе условие не проходит. Проверяю в дебаге изменив входные параметры, например модель, и вижу что выдает false на сравнение модели, а по итогу все равно возвращает true. Почему так?
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){
if (this == obj)
return true;
if (obj == null || obj.getClass() != this.getClass())
return false;
Iphone iphone = (Iphone) obj;
return price == iphone.price && model == iphone.model || model != null && model.equals(iphone.model) && color == iphone.color || color != null && color.equals(iphone.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));
}
}