Читал, смотрел видосы вот в итоге , что навоял... но требует в строке 30 ";"... не пойму что не так..
Подскажите что мы делаем этим выражением : Iphone i == (Iphone) iphone1; как я понимаю приводим к любой меременной i класса Iphone наш параметр и что дальше? 2. правильно ли я понимаю, мы сравниваем iphone1 сначала на самого себя, потом с нуль, потом является ли он классом Iphone после чего сравниваем все параметры с "этими" параметрами т.е. параметрами Класса Iphone а уже main сравнивает два айфона... при условии прочих равенств...?
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;
}
public boolean equals(Object iphone1) {
if (this == iphone1) {
return true;
}
if (iphone1 == null) {
return false;
}
if (!iphone1 instanceof Iphone) {
return false;}
Iphone i == (Iphone) iphone1;
return this.model != null && iphone1.model != null && this.model.equals(iphone1.model) && this.color != null && iphone1.color != null && this.color.equals(iphone1.color) && this.price == iphone1.price;
}
public static void main(String[] args) {
var iphone1 = new Iphone("X", "Black", 999);
var iphone2 = new Iphone("X", "Black", 999);
System.out.println(iphone1.equals(iphone2));
}
}