定义一个 area 方法,该方法具有三个参数,类型都是 Int 型,分别代表三角形的三条边长,返回值类型为 Double;要求根据三角形的三边长,返回三角形的面积。
时间: 2025-03-20 14:20:58 浏览: 15
定义 Triangle
类并实现 area()
方法
为了实现一个能够计算三角形面积的类,可以基于提供的引用内容构建完整的解决方案。以下是具体实现:
1. 创建 Triangle
类
定义一个名为 Triangle
的类,包含三个私有成员变量 a
, b
, 和 c
表示三角形的三条边长。提供两种构造方法:一种是无参构造器,默认将三边设为 0.0
;另一种是有参构造器,接受三个参数初始化三边长度。
此外,在构造器中加入逻辑验证输入的三边是否能组成合法的三角形(即满足任意两边之和大于第三边)。如果不满足条件,则将三边重置为 0.0
[^3]。
2. 实现 area()
方法
利用海伦公式 ( \text{area} = \sqrt{s(s-a)(s-b)(s-c)} ),其中半周长 ( s = \frac{(a+b+c)}{2} )[^1]。此方法应返回双精度浮点数类型的值。
下面是 Java 版本的具体代码实现:
public class Triangle {
private double a;
private double b;
private double c;
// 默认构造方法
public Triangle() {
this.a = 0.0;
this.b = 0.0;
this.c = 0.0;
}
// 带参数的构造方法
public Triangle(int a, int b, int c) {
if (isValidTriangle(a, b, c)) { // 验证是否可构成三角形
this.a = a;
this.b = b;
this.c = c;
} else {
System.out.println("Invalid triangle sides! Setting all sides to zero.");
this.a = 0.0;
this.b = 0.0;
this.c = 0.0;
}
}
// 判断能否形成有效三角形
private boolean isValidTriangle(double a, double b, double c) {
return (a + b > c) && (a + c > b) && (b + c > a);
}
// 计算三角形面积
public double area() {
double s = (this.a + this.b + this.c) / 2.0; // 半周长
if (this.a == 0 || this.b == 0 || this.c == 0) {
return 0.0; // 如果任一边为零则无法成形
}
return Math.sqrt(s * (s - this.a) * (s - this.b) * (s - this.c)); // 海伦公式
}
// 设置新的三边数值
public void setSides(int a, int b, int c) {
if (isValidTriangle(a, b, c)) {
this.a = a;
this.b = b;
this.c = c;
} else {
System.out.println("Invalid triangle sides!");
}
}
}
上述代码实现了所需功能,并加入了边界情况处理机制。
示例调用
以下是如何使用该类的一个简单例子:
public class Main {
public static void main(String[] args) {
Triangle t1 = new Triangle(); // 使用默认构造器
System.out.println(t1.area()); // 输出: 0.0
Triangle t2 = new Triangle(3, 4, 5); // 合法三角形
System.out.println(t2.area()); // 输出: 6.0
Triangle t3 = new Triangle(1, 2, 3); // 不合法三角形
System.out.println(t3.area()); // 输出警告信息后显示: 0.0
}
}
注意事项
- 若传入非法数据(如负数或不满足三角形成立条件的数据),需妥善处理异常状况。
- 返回的结果类型必须为
double
或其他支持高精度的小数形式以确保准确性[^4]。
相关推荐















