编写一个三角形类,能根据输入的3个double类型数据构造三角形对象,定义三个构造方法。
如果这3个数据满足构成三角形的条件,直接构造三角形。否则,如果3个数的最大值大于0,则自动构造以最大值为边的等边三角形。如果最大值也不大于0,则将三角形类的三边都初始化为0。
再定义一个getArea方法,计算所构造的三角形的面积,返回类型为double。
最后,编写main方法,测试getArea方法,计算三角形的面积。
输入:
输入三个有理数,中间用空格隔开。例如:
8.9 6.4 7.2
输出:
输出三角形的面积。例如:
22.78812396293297
参考代码如下:
package jiayoubao;
import java.util.Scanner;
class delta{ //三角类
double x1=0;
double x2=0;
double x3=0;
public delta(double x1,double x2, double x3){
this.x1=x1;
this.x2=x2;
this.x3=x3;
}
public double getArea() {
double p=(x1+x2+x3)/2;
return Math.sqrt(p*(p-x1)*(p-x2)*(p-x3));
}
}
public class Tesedelta{
public static void main(String args[]) {
Scanner input=new Scanner(System.in); //java 输入
double x1,x2,x3,x;
System.out.print("输入:\n");
x1=input.nextDouble();
x2=input.nextDouble();
x3=input.nextDouble();
if(x1+x2>x3 && x1+x3>x2 && x2+x3>x1) {
delta s=new delta(x1,x2,x3);
System.out.println("输出:\n"+s.getArea());
}
else if ((x=((((x1>x2)?x1:x2)>x3)?((x1>x2)?x1:x2):x3))>0){
delta s=new delta(x,x,x);
System.out.println("输出:\n"+s.getArea());
}
else {
delta s=new delta(0,0,0);
System.out.println("输出:\n"+s.getArea());
}
}
}