Добрый день!
Подскажите, пожалуйста, что нет так? При каких значениях код не будет работать? Потестила, вроде все ок
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 object) {
if (object == null) {
return false;
} else if (this == object) {
return true;
} else if (! (object instanceof Iphone)) {
return false;
}
Iphone iphone = (Iphone)object;
boolean isModelNullOk;
boolean isColorNullOk;
if(this.model == null || iphone.model == null) {
isModelNullOk = Objects.equals(this.model, iphone.model);
if(this.color == null || iphone.color == null) {
isColorNullOk = Objects.equals(this.color, iphone.color);
return isModelNullOk && isColorNullOk && this.price == iphone.price;
}
return isModelNullOk && this.color.equals(iphone.color) && this.price == iphone.price;
} else {
return this.model.equals(iphone.model) && this.color.equals(iphone.color) && this.price == iphone.price;
}
}
//напишите тут ваш код
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));
}
}