Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для nomad____1

Пользователь


Сообщения: 79
Благодарности: 1

Профиль | Отправить PM | Цитировать


Тогда как такой код???
мейн

Код: Выделить весь код
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);
        triangle.getSquare();
        if (triangle.getSquare() <= 0) {
            System.out.println("Введены некорректные данные");
        }else{
            System.out.println("Площадь треугольника равна "+triangle.getSquare()+" кв.ед.");
        }
    }
}
методарий
Код: Выделить весь код
package mathprogram;

public class Triangle {

    private float aSide;
    private float bSide;
    private float cSide;
    private boolean setSides;
    private boolean planarity;
    private boolean rightTriangle;
    private float square;

    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;
        }
        return setSides;
    }

    private boolean planarity() {
        planarity = false;
        if (aSide + bSide > cSide && bSide + cSide > aSide && aSide + cSide > bSide) {
            planarity = true;
        }
        return planarity;
    }

    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;
        }

        return rightTriangle;
    }

    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;
    }

    private float rightTriangleSquare() {
        if (planarity == true && rightTriangle == true) {
            square = aSide * bSide / 2;
        }
        return square;
    }

    private float square() {
        if (planarity == true) {
            if (rightTriangle == true) {
                rightTriangleSquare();
            } else {
                geronSquare();
            }
        }
        return 0;
    }

    public float getGeronSquare() {
        planarity();
        geronSquare();
        return square;
    }

    public float getRightTriangleSquare() {
        planarity();
        rightTriangleSquare();
        return square;
    }

    public boolean isPlanarity() {
        return planarity;
    }

    public boolean isRightTriangle() {
        return rightTriangle;
    }

    public float getSquare() {
        planarity();
        rightTriangle();
        square();
        return square;
    }

    public float getaSide() {
        return aSide;
    }

    public float getbSide() {
        return bSide;
    }

    public float getcSide() {
        return cSide;
    }
}

Все защищено. Лишнего ничего нет. Тявкает то что ему сказано. Может и не тявкать если надо. Это уже мы выбираем. Стороны вводятся через сеттеры. Внутренние методы работают только то что надо, а именно считают и не вызываю других методов. Можно получить любые интересующие данные благодаря геттерам. Принудительно что то в логике изменить нельзя. Также класс сам считает более подходящим способом.

-------
________________________________________________________
Ты - то что ты ешь. Ешь людей - будь человеком


Отправлено: 23:06, 08-05-2015 | #32