public Rectangle(Rectangle rectangle)
{
this.left = left;
this.top = top;
this.width = width;
this.height = height;
}
Это для последнего пункта , чтобы создать копию другого прямоугольника (он и передаётся в параметрах). Не совсем понимаю почему именно так нужно писать.
Сергей
23 уровень
Объясните пожалуйста код
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
25 апреля 2020, 13:16
Надо писать так:и т.д.
Задача этого конструктора создать копию прямоугольника аргумента.
Другими словами тебе нужно создать прямоугольник, у которого будут такие же координаты угла, такая же ширина и высота.
Поэтому ты берешь параметр аргумента rectangle.top и помещаешь в поле создаваемого объекта this.top
0
Сергей
25 апреля 2020, 13:23
Очень странно . Я написал this.top = top и он всё равно засчитал как верный ответ )
0
hidden #598481
25 апреля 2020, 13:28
Потому что тут в задаче надо написать любые валидные конструкторы. Смысл твоего конструктора изменился и потерялся.
Если написать this.top = top, то это то же самое, что this.top = this.top. Поскольку примитивные поля при создании инстанса инициализируются по умолчанию нулем, то это все равно, что ты написал this.top = 0, при этом не обратившись к rectangle.
Когда в других конструкторах ты получаешь параметры с такими же именами, напримерто в этом случае обращение без указателя объекта, просто top, будет ссылаться на локальный аргумент, а this - на объект создаваемого класса. Если аргумента с именем top нету, то и this.top и просто top - это одно и то же.
0
Сергей
25 апреля 2020, 13:38
Понял, спасибо большое
0