public class Triangolo implements Poligono { private int a; private int b; private int c; public Triangolo(int p, int q, int r) { int pTmp = p; int qTmp = q; int rTmp = r; // ordinamento per selezione if (pTmp < qTmp) { int tmp = pTmp; pTmp = qTmp; qTmp = tmp; } if (pTmp < rTmp) { int tmp = pTmp; pTmp = rTmp; rTmp = tmp; } if (qTmp < rTmp) { int tmp = qTmp; qTmp = rTmp; rTmp = tmp; } if (pTmp > qTmp + rTmp) throw new IllegalArgumentException(); a = p; b = q; c = r; } public int perimetro() { return a + b + c; } public double area() { double p = perimetro() / 2; return Math.sqrt(p * (p - a) * (p - b) * (p - c)); } public int compareTo(Object obj) { Poligono p = (Poligono) obj; if ( area() - p.area() < 0) return -1; else if ( area() - p.area() > 0) return +1; else return 0; } public String toString() { return ": " + a + ", " + b + ", " + c; } }