2-3 编写一个三角形类

编写一个三角形类,能根据输入的3个double类型数据构造三角形对象,定义三个构造方法。
如果这3个数据满足构成三角形的条件,直接构造三角形。否则,如果3个数的最大值大于0,则自动构造以最大值为边的等边三角形。如果最大值也不大于0,则将三角形类的三边都初始化为0。
再定义一个getArea方法,计算所构造的三角形的面积,返回类型为double。
最后,编写main方法,测试getArea方法,计算三角形的面积。

输入:
输入三个有理数,中间用空格隔开。例如:
8.9 6.4 7.2

输出:
输出三角形的面积。例如:
22.78812396293297

import java.util.Scanner;;
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        triAngle t = new triAngle(in.nextDouble(), in.nextDouble(), in.nextDouble());
        System.out.println(t.getArea());
    }   

}

class triAngle {
    private double a;
    private double b;
    private double c;

    triAngle(double a, double b, double c){
        double max;
        if(a > b && a > c) {
            max = a;
        }else if(b > c) {
            max = b;
        }else {
            max = c;
        }

        if(a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a) {
            this.a = a;
            this.b = b;
            this.c = c;
        }else if(max > 0) {
            this.a = max;
            this.b = max;
            this.c = max;
        }else {
            this.a = 0;
            this.b = 0;
            this.c = 0;
        }
    }

    double getArea() {
        //S=根号[s(s-a)(s-b)(s-c)] 
        double s = (a + b + c) / 2;
        return Math.sqrt(s * (s - a) * (s - b) * (s - c));
    }

}

你可能感兴趣的:(2-3 编写一个三角形类)