public class Triangle implements Polygon { private double side1; private double side2; private double side3; public Triangle(double side1, double side2, double side3) { if(radicand(side1, side2, side3) < 0) { throw new IllegalArgumentException(); } this.side1 = side1; this.side2 = side2; this.side3 = side3; } public double area() { return Math.sqrt(radicand(side1, side2, side3)); } public double diameter() { return Math.max(side1, Math.max(side2, side3)); } public double perimeter() { return side1 + side2 + side3; } private static double radicand(double a, double b, double c) { double s = (a + b + c)/2.0; return s*(s - a)*(s - b)*(s - c); } @Override public String toString() { return String.format("Triangle(%s, %s, %s)", side1, side2, side3); } public int numSides() { return 3; } }