public class Circle extends GeometricObject { private Point center; private double radius; private static Point origin = new Point(0,0); private static double maxRadius = -1; private static Circle maxCircle = null; public Circle(Point center, double radius) throws Exception { if (radius < 0) { throw new Exception ("Circle with negative radius."); } constructCircle(center, radius); } private void constructCircle(Point center, double radius) { this.center = center; this.radius = radius; setColor("pink"); if (radius > maxRadius) { maxRadius = radius; maxCircle = this; } } public Circle(double radius) throws Exception { this(origin, radius); } public Circle(Point center) { // No exception possible constructCircle(center, 1.0); } public Circle() { // No exception possible constructCircle(origin, 1.0); } public Point getCenter() { return this.center; } public double getRadius() { return this.radius; } public double area () { return Math.PI * radius * radius; } public static Circle largestCircle() { if (maxRadius < 0) System.out.println("No circles created, so maximum circle is null"); return maxCircle; } public boolean equals(Object obj) { if (obj instanceof Circle) return radius == ((Circle)obj).radius; // Only radius counts (not center) return false; } } // Local Variables: // c-basic-offset: 4 // compile-command: "javac *.java; java TestQuad" // End: