import java.awt.*;
import java.awt.geom.*;
public class Circle {
    private double x;
	 private double y;
	 private double radius;
	 private Color color;
	 
	 /**
	  * construct a circle
	  * @param x x-coordinate of center
	  * @param y y-coordinate of center
	  * @param radius radius of circle
	  * @param color color of circle
	  */
	 public Circle(double x, double y, double radius, Color color) {
	    this.x = x;
		 this.y = y;
		 this.radius = radius;
		 this.color = color;
	 }
	 
	 /**
	  * construct a unit circle, centered at 0,0 with radius 1
	  * @param color color of circle
	  */
	 public Circle(Color color) {
	    this(0.0, 0.0, 1.0, color);
	 }
	 
	 /**
	  * construct a blue circle, centered at origin
	  * @param radius radius of circle
	  */
	 public Circle(double radius) {
	    this(0.0, 0.0, radius, Color.BLUE);
	 }
	 
	 /**
	  * construct a circle
	  * @param center coordinates of center
	  * @param radius radius of circle
	  * @param color color of circle
	  */
	 // illegal, must call constructor first
	 public Circle(Point2D center, double radius, Color color) {
	    double x, y;
		 x = center.getX();
		 y = center.getY();
		 this(x, y, radius, color);
	 }

	 /**
	  * construct a circle
	  * @param center coordinates of center
	  * @param radius radius of circle
	  * @param color color of circle
	  */
//     public Circle(Point2D center, double radius, Color color) {
// 		 this(center.getX(), center.getY(), radius, color);
// 	 }
	
	 // illegal, already have constructor with 1 double
	 public Circle(double diameter) {
	    this(0.0, 0.0, diameter/2.0, Color.BLUE);
	 }
	 /**
	  * get the circle color
	  * @return color of circle
	  */
	 public Color getColor() {
	    return this.color;
	 } 

	 /**
	  * get the radius
	  * @return radius
	  */
	 public double getRadius() {
	    return this.radius;
	 } 
	 
	 /**
	  * get the circle center
	  * @return center of circle
	  */
	 public Point2D getCenter() {
	    return new Point2D.Double(this.x, this.y);
	 } 

}