Почему бы вам не записать x
и y
и вычислять радиус и альфа только тогда, когда вам это нужно.
Таким образом, у вас есть
public void setX(double x) { _x = x; }
public double getX() { return _x; }
РЕДАКТИРОВАТЬ: Вы можете сделать это.
public Point(double x, double y) {
setRadiusAlpha(x, y);
}
private void setRadiusAlpha(double x, double y) {
if(x < 0) x = 0;
if(y < 0) y = 0;
_radius = Math.sqrt(x*x + y*y) ;
_alpha = Math.toDegrees(Math.atan(y/x));
}
public void setX() { setRadiusAlpha(x, getY()); }
public void setY() { setRadiusAlpha(getX(), y)); }