Решил задачу по своему. Код не идеальный, но валидатор принял. Все, ок. Но Когда загрузил правильное решение, чтоб сравнить со своим. Не все понял(
if (o == null || getClass() != o.getClass()) {
return false;
не совсем понял вот эту часть. Что значит getClass()?
Iphone iphone = (Iphone) o;
return price == iphone.price &&
Objects.equals(model, iphone.model) &&
Objects.equals(color, iphone.color);
И что-за Objects? Могли бы подробнее разъяснить.
Заранее, спс)
ПС Мое решение получилось таким:
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 iphone = (Iphone) obj;
if (this.price != iphone.price)
return false;
if (this.model == null || this.color == null)
return false;
return (this.model.equals(iphone.model) && this.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));
}
}