编写一个代表三角形的类,其中,三条变为三角形的属性,并封装有求三角形的面积和周长的方法,并设计构造方法和tostring()的方法,分别对三条边为3,4,5和8,8,12的两个三角形进行测试,求面积保留小数点后两位
2条回答 默认 最新
关注 回答参考gpt4
你可以使用 Java 编写一个代表三角形的类,其中包含三条边的属性,封装计算面积和周长的方法,并设计构造方法和toString()
方法。下面是一个示例代码,包括对三角形的测试。代码实现:
public class Triangle { // 三条边的属性 private double side1; private double side2; private double side3; // 构造方法 public Triangle(double side1, double side2, double side3) { // 检查是否能构成三角形 if (isValidTriangle(side1, side2, side3)) { this.side1 = side1; this.side2 = side2; this.side3 = side3; } else { throw new IllegalArgumentException("这三条边不能构成三角形"); } } // 判断三条边是否能构成三角形 private boolean isValidTriangle(double side1, double side2, double side3) { return (side1 + side2 > side3) && (side1 + side3 > side2) && (side2 + side3 > side1); } // 计算周长 public double getPerimeter() { return side1 + side2 + side3; } // 计算面积 (使用海伦公式) public double getArea() { double s = getPerimeter() / 2; // 计算半周长 return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); } // toString方法,显示三角形的边长、周长和面积 @Override public String toString() { return String.format("三角形的边长为: %.2f, %.2f, %.2f\n周长: %.2f\n面积: %.2f", side1, side2, side3, getPerimeter(), getArea()); } // 测试代码 public static void main(String[] args) { // 第一个三角形 3, 4, 5 Triangle triangle1 = new Triangle(3, 4, 5); System.out.println(triangle1.toString()); // 第二个三角形 8, 8, 12 Triangle triangle2 = new Triangle(8, 8, 12); System.out.println(triangle2.toString()); } }
代码说明:
- 类的属性:三角形有三个边,使用
side1
、side2
和side3
存储。 - 构造方法:检查给定的三条边是否能构成一个合法的三角形,如果不能构成则抛出异常。
- 周长计算:周长是三条边的和,通过
getPerimeter()
方法计算。 - 面积计算:面积使用海伦公式,通过
getArea()
方法计算。 toString()
方法:重写了toString()
方法,输出三角形的边长、周长和面积,面积保留两位小数。- 测试:代码测试了两种不同边长的三角形(3, 4, 5 和 8, 8, 12)。
输出结果:
三角形的边长为: 3.00, 4.00, 5.00 周长: 12.00 面积: 6.00 三角形的边长为: 8.00, 8.00, 12.00 周长: 28.00 面积: 31.23
这个程序将正确计算和显示两个三角形的周长和面积,并保证面积保留两位小数。
解决 1无用- 类的属性:三角形有三个边,使用
悬赏问题
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?
- ¥15 nasm x86 变量归零
- ¥65 Tree 树形控件实现单选功能,可以使用element也可以手写一个,实现全选为全选状态
- ¥60 寻抓云闪付tn组成网页付款链接
- ¥16 寻字节跳动内部人员帮推简历