4. 10 points

// Cartesian implements Complex using cartesian coordinates.

class Cartesian implements Complex
{
private double X, Y;

public Cartesian(double X, double Y)	// constructor
  {
  this.X = X;
  this.Y = Y;
  }

public double getX()
  {
  return X;
  }

public double getY()
  {
  return Y;
  }

public double getR()
  {
  return Math.sqrt(X*X + Y*Y);
  }

public double getTheta()
  {
  return Math.atan(Y/X);
  }
}


// Polar implements Complex using polar coordinates.

class Polar implements Complex
{
private double R, Theta;

public Polar(double R, double Theta)	// constructor
  {
  this.R = R;
  this.Theta = Theta;
  }

public double getX()
  {
  return R*cos(Theta);
  }

public double getY()
  {
  return R*Math.sin(Theta);
  }

public double getR()
  {
  return R;
  }

public double getTheta()
  {
  return Theta;
  }
}