Если честно, эта лекция совершенно не зашла по пониманию. даже после повторного прочтения на свежую голову. поэтому для начала хотелось бы прояснить несколько моментов именно из лекции, если кто-то смог бы объяснить более доступно...
1 - параметр типа Object - как его задать, какие у него характеристики, чем он отличается от остальных? в метод equals принимается только он, ок. в лекции во всех примерах это выглядит Object obj - в задаче с айфонами какой это примет вид? мы передаем в качества параметра уже созданный через команду new новый айфон? тогда надо поидее передавать два параметра - оба телефона. в общем, не понятна лексика, было бы неплохо примеры на кошечках или еще чем похожем
2 - в лекции в 1 сценарии используется this вместо this.obj - почему? я правильно поняла, что сравниваются ссылку где-то ранее в классе уже заданного некоего obj с тем, который передается в параметрах? так поему просто this?
3 - операция приведения типа - что это, зачем и как? я прочитала это так - в классе person создаем переменную person, в которую записываем насильно превращенный в person obj... (как когда нам надо было кровь из носу из double сделать int). зачем это? какой в этом сакральный смысл? почему выполняется после сравнения?
4 - уже непосредственно к задаче. исходя из того, что я не поняла лекцию. сначала мы описываем параметры телефонов, потом вводим конструктор, который вызывается при создании нового телефона, и дальше, собсна, должен идти метод сравнения. и что именно в него передать в качестве параметра(ов), я так и не поняла. ясно, что что-то типа Object, но объектов у нас два - телефоны. и они типа телефон, нет?
5 - в main в выводе нам нужно в качестве параметра println вызвать метод? так можно? каким образом? или нам нужно вызвать println булеву переменную, которой мы присвоим результат метода сравнения? тогда не сработают if.. в общем, только вопросы. а в решение смотреть не хочется. разжуйте, пожалуйста!
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(String model, String color, int price){
if (this.price!=price) return false;
if (model==null || color==null) return false;
return (this.model.equals(model) && this.color.equals(color));
}
public static void main(String[] args) {
Iphone iphone1 = new Iphone("X", "Black", 999);
Iphone iphone2 = new Iphone("X", "Black", 999);
System.out.println(Iphone.equals());
}
}