/*
   A Circle class that extends the abstract Shape class.
*/

public class Circle extends Shape
{
   //the radius of a circle in pixels
   private int r;

   //the constructors
   Circle() { super(); setRadius(r); }

   Circle(int r) { super(); setRadius(r); }

   Circle(Point p, int r) { super(p); setRadius(r); }

   //set methods
   public void setRadius(int r) { if (r<0) r = -r; this.r = r; }

   public void setCenter(Point p) { super.setPoint(p); }

   //get methods
   public int getRadius() { return r; }

   public Point getCenter() { return super.getPoint(); }

   //now for the methods from the abstract class
   public double area() { return Math.PI * r * r; }

   public double perimeter() { return 2 * Math.PI * r; }

   public void translate(int x, int y)
   {
     setPoint( new Point( x + getPoint().getX(), y + getPoint().getY() ) );
   }

   public String toString()
   { return "I am a circle.\nMy radius is " + r + " pixels.\n"
          + "My center is " + getPoint().toString() + ".";
   }

}//Circle