package test;
class Triangle{
private double a;
private double b;
private double c;
//使用private变量实现封装,提高安全性
//private 私有变量在测试类中是不能通过“类名.属性 ”直接调用的,必须通过setter和getter
public Triangle() {
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
double area(){
if(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a) { //先判断是否能够成三角形
double s= (a+b+c)*(1.0/2.0);
double area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
return area;
}
return -1;
}
}
public class TestTriangle {
public static void main(String[] args) {
/*以下是测试数据
* 假设三个边是
* a=5,b=5,c=5
* a=3,b=4, c=5
* a=3,b=4,c=7
* 其实可以在Triangle类中定义一个含a、b、c三参数的构造方法更方便,比如:
* public Triangle(double a, double b, double c) {
this.a=a;
this.b=b;
this.c=c;
}
* 这样在测试类创建对象时可以直接Triangle ta = new Triangle(a, b, c);
* 但题目没有这样要求,就算了
*/
Triangle ta = new Triangle();
ta.setA(3); ta.setB(4); ta.setC(5);
//ta.setA(5); ta.setB(5); ta.setC(5);
//ta.setA(3); ta.setB(4); ta.setC(7);
double area=ta.area();
if(area>0) {
System.out.println("此三角形的面积为"+ta.area());
}else {
System.out.println("此三边构不成三角形!");
}
}
}