// Circle.java
//  a class that implements Measurable
// See also:
//  Measurable.java
//  Rectangle.java

public class Circle implements Measurable {

    private double radius;

    public Circle (double r) {
        radius = r;
    }

    public double getRadius () {
        return radius;
    }

    public double getCircumference () {
        return 2 * Math.PI * radius;
    }

    public double getDiameter () {
        return 2 * radius;
    }

    @Override
    public double getArea () {
        return Math.PI * Math.pow (radius, 2);
    }

    @Override
    public double getPerimeter () {
        return getCircumference ();
    }

    // toString method (inherited from Object)
    @Override
    public String toString () {
        return "Circle (r = " + radius + ")";
    }

    // equals method (inherited from Object)
    @Override
    public boolean equals (Object obj) {
        // if the object is a circle
        if (obj instanceof Circle) {
            // make a Circle variable to refer to it
            Circle c = (Circle) obj;
            // and return whether it has the same radius
            return c.radius == this.radius;
        }

        // not a circle?  not equals!
        return false;
    }
}
