Вот с утра не было дел. Шел дождь. Делать было нечего. Порция очередного
"гавнокода"
мейн
Дописано Ваш тест.
Код:

package mathprogram;
import java.util.Scanner;
public class MathProgram {
public static void main(String[] arg) {
Triangle triangle = new Triangle();
// triangle.inputSides();
Scanner input = new Scanner(System.in);
System.out.println("Введите первую сторону");
float sideA = input.nextFloat();
System.out.println("Введите вторую сторону");
float sideB = input.nextFloat();
System.out.println("Введите третью сторону");
float sideC = input.nextFloat();
triangle.setSides(sideA, sideB, sideC);
System.out.println(triangle.getaSide());
System.out.println(triangle.getbSide());
System.out.println(triangle.getcSide());
System.out.println(triangle.getSquare());
System.out.println(triangle.getRightTriangleSquare());
System.out.println(triangle.getGeronSquare());
if (triangle.getSquare() <= 0) {
System.out.println("введены некорректные данные");
}
}
}
методарий
Код:

package mathprogram;
import java.util.Arrays;
public class Triangle {
private float aSide;
private float bSide;
private float cSide;
private boolean setSides;
private boolean planarity;
private boolean rightTriangle;
private float square;
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* метод проверяющий введенные значения
*
* @param sideA
* @param sideB
* @param sideC
* @return
*/
//</editor-fold>
public boolean setSides(float sideA, float sideB, float sideC) {
setSides = false;
if (sideA > 0 && sideB > 0 && sideC > 0) {
aSide = sideA;
bSide = sideB;
cSide = sideC;
setSides = true;
// sortSides();
planarity();
}
return setSides;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* метод проверяющий треугольник на планарность
*
* @return
*/
//</editor-fold>
private boolean planarity() {
planarity = false;
if (aSide + bSide > cSide && bSide + cSide > aSide && aSide + cSide > bSide) {
planarity = true;
rightTriangle();
}
return planarity;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* метод проверяющий треугольник на прямоугольность
*
* @return
*/
//</editor-fold>
private boolean rightTriangle() {
rightTriangle = false;
if (aSide * aSide + bSide * bSide == cSide * cSide || aSide * aSide + cSide * cSide == bSide * bSide || bSide * bSide + cSide * cSide == aSide * aSide) {
rightTriangle = true;
}
square();
return rightTriangle;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* метод вычисляющий площадь по теореме Герона
*
* @return
*/
//</editor-fold>
private float geronSquare() {
if (planarity == true) {
float perimeter = (aSide + bSide + cSide) / 2;
square = (float) Math.sqrt(perimeter * ((perimeter - aSide) * (perimeter - bSide) * (perimeter - cSide)));
}
return square;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* метод вычисляющий площадь по стандартной формулой для прямоугольного
* треугольника
*
* @return
*/
//</editor-fold>
private float rightTriangleSquare() {
if (planarity == true && rightTriangle == true) {
square = aSide * bSide / 2;
}
return square;
}
private float square() {
if (planarity == true) {
if (isRightTriangle() == true) {
rightTriangleSquare();
} else {
geronSquare();
}
}
return 0;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* площадь вычисленная по теореме Герона
*
* @return
*/
//</editor-fold>
public float getGeronSquare() {
return geronSquare();
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* площадь вычисленная стандартной формулой для прямоугольного треугольника
*
* @return
*/
//</editor-fold>
public float getRightTriangleSquare() {
return rightTriangleSquare();
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the setSides информация о том корректно ли были введены длины
* сторон
*/
//</editor-fold>
public boolean isSetSides() {
return setSides;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the planarity информация о планарности фигуры (можно ли ее
* отнести к треугольникам с точки зрения классической планиметрии)
*/
//</editor-fold>
public boolean isPlanarity() {
return planarity;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the rightTriangle информация является ли данный треугольник
* прямоугольным
*/
//</editor-fold>
public boolean isRightTriangle() {
return rightTriangle;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the square с помощью данной функции можно получить площадь
* треугольника
*/
//</editor-fold>
public float getSquare() {
square();
return square;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the aSide с помощью данной функции можно получить значение стороны.
* одна с самых маленьких сторон треугольника (предположительно один из
* катетов если треугольник прямоугольный)
*/
//</editor-fold>
public float getaSide() {
return aSide;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the bSide с помощью данной функции можно получить значение стороны.
* одна с самых маленьких сторон треугольника (предположительно один из
* катетов если треугольник прямоугольный)
*/
//</editor-fold>
public float getbSide() {
return bSide;
}
//<editor-fold defaultstate="collapsed" desc="описание метода">
/**
* @return the cSide с помощью данной функции можно получить значение стороны.
* самая большая сторона треугольника (предположительно гипотенуза если
* треугольник прямоугольный)
*/
//</editor-fold>
public float getcSide() {
return cSide;
}
}
Теперь класс "сам" определяет лучший способ вычисления площади. В меру болтлив. Зря не "тявкает" в консоль.
Сортировка массива была сделана для того что бы не писать такую колбасу так как мне показалось это не совсем эстетичным.
Код:

rightTriangle = false;
if (aSide * aSide + bSide * bSide == cSide * cSide || aSide * aSide + cSide * cSide == bSide * bSide || bSide * bSide + cSide * cSide == aSide * aSide) {
rightTriangle = true;
Переделал признаю что на меня вне сошла лень. Больше так не буду.
Флаги сделал доступными для чтения для того что бы можно было получить инфу например о планарности треугольника только. Или прямоугольность. Не всегда же программа должна только площадь считать. Так сказать наращиваю функционал.