Всем привет!!!
Начну с того, что при решении была типичная ошибка, как у всех, что при проверке на "null", я не проверял второй "String".
Почитав чужие вопросы и ответы - я логику вроде бы понял.
Переписал код на тот который есть сейчас.
Код может и не очень красивый, но я хотел описать логику работы и он работает при любых заданных параметрах.
Укажите мне пожалуйста на ошибку, если она есть. И если есть ошибка, то поясните пожалуйста.
Спасибо.
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)
return false;
if (!(obj instanceof Iphone))
return false;
Iphone iph = (Iphone) obj;
if (this.price != iph.price)
return false;
if (this.model == null && iph.model == null)
if (this.color != null || iph.color != null)
return this.color.equals(iph.color);
else
return true;
else if (this.color == null && iph.color == null)
return this.model.equals(iph.model);
return this.model.equals(iph.model) && this.color.equals(iph.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));
}
}