Из-за того, что ваш класс определен:
public class Circle {
private Center c;
private double radius;
...
}
Ключевыми моментами здесь являются переменная c
класса Center
и переменная radius
типа примитива double
, вам нужно определить оба.
Как видите, третий конструктор предоставляет вам три переменные: x
, y
и radius
. Единственный способ сопоставления этих трех с c
и radius
:
public Circle(double x, double y, double radius) {
c = new Center(x, y);
this.radius = radius; //here you must use `this` reference to avoid
//collision between the radius variable from the class and its
//counerpart from the constructor.
}
. В этом конструкторе мы создаем новый Center
для удовлетворения переменной c
, помещаем туда x
и y
, как это требуется в объявлении конструктора Center
. Также мы присваиваем переменную radius
.