1 changed files with 28 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||
package com.shape; |
|||
|
|||
public class Triangle extends Shape { |
|||
private double sideA; |
|||
private double sideB; |
|||
private double sideC; |
|||
|
|||
public Triangle(double sideA, double sideB, double sideC) { |
|||
if (!isValidTriangle(sideA, sideB, sideC)) { |
|||
throw new IllegalArgumentException("输入的三边无法构成三角形(必须满足三角形不等式)"); |
|||
} |
|||
this.sideA = sideA; |
|||
this.sideB = sideB; |
|||
this.sideC = sideC; |
|||
} |
|||
|
|||
// 判断是否能构成三角形(三角形不等式)
|
|||
private boolean isValidTriangle(double a, double b, double c) { |
|||
return (a + b > c) && (a + c > b) && (b + c > a) && a > 0 && b > 0 && c > 0; |
|||
} |
|||
|
|||
@Override |
|||
public double getArea() { |
|||
// 使用海伦公式计算三角形面积
|
|||
double p = (sideA + sideB + sideC) / 2; // 半周长
|
|||
return Math.sqrt(p * (p - sideA) * (p - sideB) * (p - sideC)); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue