(1)合理定义一个三角形类Triangle,成员属性包括3条边,能否构成三角形的标志;成员方法包括构造方法、修改3条边、计算面积。
(2)写一测试类,测试自定义三角形类Triangle是否正确。
class Triangle_D{
private double f_edge; //第一条边
private double s_edge; //第二条边
private double t_edge; //第三条边
public Triangle_D() {
}
//判断能否构成三角形
public Triangle_D(double f_edge, double s_edge, double t_edge) {
this.f_edge = f_edge;
this.s_edge = s_edge;
this.t_edge = t_edge;
/*
if(f_edge + s_edge > t_edge) {
if(f_edge + t_edge > s_edge) {
if(t_edge + s_edge > f_edge) {
System.out.println("能构成三角形");
}else {
System.out.println("不能构成三角形,请重新输入!");
}
}else {
System.out.println("不能构成三角形,请重新输入!");
}
}else {
System.out.println("不能构成三角形,请重新输入!");
}
*/
}
//获取f_edge
public void setF_edge(double f_edge) {
this.f_edge = f_edge;
}
public double getF_edge(double f_edge) {
return f_edge;
}
//获取s_edge
public void setS_edge(double s_edge) {
this.s_edge = s_edge;
}
public double getS_edge(double s_edge) {
return s_edge;
}
//获取t_edge
public void setT_edge(double t_edge) {
this.t_edge = t_edge;
}
public double getT_edge(double t_edge) {
return t_edge;
}
//构建judge判断方法,判断是否两边之和大于第三边
public boolean judge() {
//语法正确,结果不符的写法:
//if((f_edge+s_edge>t_edge) || (f_edge+t_edge>s_edge) || (t_edge+s_edge>f_edge))
if((f_edge+s_edge>t_edge) && (f_edge+t_edge>s_edge) && (t_edge+s_edge>f_edge)) {
return true;
}else {
return false;
}
}
public void area() {
//立个flag
boolean flag = true;
//定义变量半周长p,面积area
double p, area;
//判断flag
if (flag == judge()) {
//计算半周长p
p = (f_edge+s_edge+t_edge)/2;
//计算面积,用到Math类sqrt方法
area = Math.sqrt(p*(p-f_edge)*(p-s_edge)*(p-t_edge));
System.out.println("输入的数为"+f_edge+"\t"+s_edge+"\t"+t_edge);
System.out.println("面积为:"+area);
}else {
System.out.println("不能构成三角形,请重新赋值!");
}
}
}
//测试类
public class Triangle {
public static void main(String[] args) {
System.out.println("请输入三个数字,来构成一个三角形");
//创建对象
Triangle_D td = new Triangle_D(3,4,5);
td.area();
//分割线
System.out.println("-------------------分割线---------------------");
//再次给值
Triangle_D td2 = new Triangle_D(1,3,5);
td2.area();
}
}