создаём копию другого прямоугольника (он и передаётся в параметрах)
как создать? я пытался так
public Rectangle(){
this(left, top, width, height);
}
но пишет
Cannot reference 'Rectangle.height' before supertype constructor has been called...
можете объяснить, как создать копию другого конструктора?
Intern
10 уровень
копия конструктора
Решен
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sergei
5 июня 2019, 11:28
наверное всё-таки не this(l, t, w, h) а super(l, t, w, h)
+1
Я СТАНУ ХОКАГЕ
9 октября 2019, 21:28
А супер разве не при наследовании ? тут как раз же this , класс наш и наследовать нечего
0
Sergei
5 июня 2019, 11:26
А можно полное условие с имеющимся кодом?
+1
Intern
5 июня 2019, 18:28
Создать класс прямоугольник (Rectangle). Его данными будут top, left, width, height (верхняя координата, левая, ширина и высота).
Создать для него как можно больше методов конструкторов.
- создаём копию другого прямоугольника (он и передаётся в параметрах)
0
Intern
5 июня 2019, 18:33
...я уже загуглил... нужно
public Rectangle(Rectangle rec){
top=rec.top;
left=rec.left;
width=rec.width;
height=rec.height;
}
то есть, в скобках мы пишем что передаем новый объект такого-то класса, а в "методе" конструктора присваиваем каждый параметр новому объекту? так? я вот не совсем понял, почему в фигур. скобках именно top=rec.top, почему нельзя было this.top=rec.top?
+1
Артем DivertittoSenior Android-разработчи в United TechMaster
7 июня 2019, 12:53
Можно так. Скинь код, посмотрим в чем проблема
0
Intern
7 июня 2019, 13:18
вот собственно и код:
0
Артем DivertittoSenior Android-разработчи в United TechMaster
7 июня 2019, 13:24
Всё работает
0
Intern
7 июня 2019, 13:49
тогда в чем разница этих 2 методов?
0
Артем DivertittoSenior Android-разработчи в United TechMaster
7 июня 2019, 13:52
Ты наверное про конструктор спрашиваешь. В данном случае никакой разницы нет. Разница заметна в случае, если у тебя будет такой конструктор:
В таком случае у тебя возникает вопрос: Как переменной класса присвоить переменные из конструктора?
Вот тут нам как раз и нужно ключевое слово this
0
Intern
7 июня 2019, 14:27
про конструкторы то я понял, просто не пойму как правильней передавать переменные (копию) другому объекту...
public Rectangle(Rectangle rec){
top=rec.top;
left=rec.left;
width=rec.width;
height=rec.height;
}
тоже самое что
public Rectangle(Rectangle rec){
this.top=rec.top;
this.left=rec.left;
this.width=rec.width;
this.height=rec.height;
}
?
0
Артем DivertittoSenior Android-разработчи в United TechMaster
7 июня 2019, 15:15
Да
+1