public class Triangle implements Polygon { private double a; private double b; private double c; public Triangle(double a, double b, double c) { if(radicand(a, b, c) < 0) { throw new IllegalArgumentException(); } this.a = a; this.b = b; this.c = c; } 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); } public int numSides() { return 3; } public double area() { return Math.sqrt(radicand(a, b, c)); } public double perimeter() { return a + b + c; } public double diameter() { return Math.max(Math.max(a,b),c); } public String toString() { return String.format("Triangle(%s, %s, %s)", a, b, c); } }