Я искренне не понимаю, почему не проходит третье условие. Что я только не вписал в условия. Наверное мне не ясна сама суть темы. Пожалуйста объясните на пальцах, если не сложно.
package com.javarush.task.pro.task10.task1010;
/*
Два айфона
*/
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 (this == object) return true;
if(getClass() != object.getClass() || object == null) {
return false;
}
Iphone iphone = (Iphone) object;
if (iphone.model == null || iphone.color == null || iphone.price == 0 || this.model == null || this.color == null|| this.price == 0) return false;
return model == iphone.model && color == iphone.color && price == iphone.price && this.model != null && this.color != null;
}
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));
}
}
||сначала вычисляется левый операнд.equals()будет ещё подробно объяснена в дополнительных лекциях к уровню...o, имеющая объявленный типObjectприводится к типуIphone, после чего присваивается переменнойiphoneимеющей объявленный типIphone. После этого можно обращатся к полям объекта, ссылка на который теперь лежит у в переменнойiphone.