Я его правильно написал?
public class Rectangle {
int top;
int left;
int width;
int height;
Rectangle a;
public Rectangle (int top) {
this.top = top;
}
public Rectangle (int top, int left) {
this.top = top;
this.left = left;
}
public Rectangle (int top, int left, int width) {
this.top = top;
this.left = left;
this.width = width;
}
public Rectangle (Rectangle a) {
a.top = this.top;
a.left = this.left;
a.width = this.width;
a.height = this.height;
}
Даниил Симоненков
10 уровень
Конструктор на копирование файлов
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Глеб
1 марта 2020, 09:25
Нужно убрать поле класса Rectangle a; а в последнем конструкторе поменять переменные сторонами вот так:
this.top = a.top;
this.left = a.left;
this.width = a.width;
this.height = a.height;
Теперь, создай прямоугольник с помощью третьего конструктора - Rectangle rectangle1 = new Rectangle(5,10,15);
Чтобы создать прямоугольник с помощью четвертого конструктора нужно написать так - Rectangle rectangle2 = new Rectangle(rectangle1); тогда ссылка rectangle1 будет равна ссылке с названием "a" в параметрах четвёртого конструктора, а в теле конструктора написано this.top = a.top, что означает this.top = rectangle1.top ведь ссылки ссылаются на один объект. И по аналогии c переменной top - прописать копирование значений остальных переменных.
0
Даниил Симоненков
20 февраля 2020, 17:05
Я пытаюсь понять как создать копирующий конструктор.
0
Ksenia VolkovaJava Developer в DXCMaster
20 февраля 2020, 16:51
Разве у прямоугольника должно быть поле Rectangle a?
0