三角形类Triangle的编写和测试。

具体要求:

  • 三角类有3个私有属性,三个边(a,b,c);
  • 编写三角形类的无参构造方法和包含所有属性的构造方法;
  • 编写所有属性的Getters和Setters方法;
  • 编写求三角形面积的方法,public double getArea();
  • 编写求三角形周长的方法,public double getPrimeter();
  • 编写Main测试类,分别调用两个构造方法生成两个三角形,然后设置相关参数,输出三角形面积和周长。
import java.util.Scanner;
public class Triangle {
    private double a,b,c;
    public Triangle(double a, double b, double c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    public Triangle() {
    }

    public double getA() {
        return a;
    }
    public void setA(double a) {
        this.a = a;
    }
    public double getB() {
        return b;
    }
    public void setB(int b) {
        this.b = b;
    }
    public double getC() {
        return c;
    }
    public void setC(int c) {
        this.c = c;
    }
    public double getArea() {// 不需要参数,直接访问属性
        double s, p;
        //判断a、b、c能否构成三角形
        if (a + b > c && b + c > a && c + a > b) {
            p = (a + b + c) / 2;
            s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
        }else {
            s = -1;
        }
        return s;
    }
    public double getPrimeter(){//周长
        return a+b+c;
    }
}
class Main{
    public static void main(String[] args) {
        double a, b, c, s;
        Scanner sc = new Scanner(System.in);
        System.out.print("a = ");
        a = sc.nextDouble();
        System.out.print("b = ");
        b = sc.nextDouble();
        System.out.print("c = ");
        c = sc.nextDouble();
        //利用构造方法创建三角形对象
        Triangle triangle = new Triangle(a,b,c);
        //调用三角形对象方法
        s = triangle.getArea();
        //判断是否构成三角形
        if (s != -1) {
            System.out.println("area =" + s);
            System.out.println("周长"+triangle.getPrimeter());
        }else {
            System.out.println("温馨提示:构不成三角形!");
        }
        // 使用无参构造
        Triangle t1 = new Triangle();
        t1.setA(3);
        t1.setB(4);
        t1.setC(5);
        System.out.println("使用无参构造方法a=3 b=4 c=5");
        System.out.println("area =" + t1.getArea());
        System.out.println("周长"+t1.getPrimeter());
    }
}