From e53d42788b12e65391956fc7617cb1c5c09a99fe Mon Sep 17 00:00:00 2001 From: WangHe <2260378191@qq.com> Date: Sun, 29 Mar 2026 18:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'w4'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w4/Triangle.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 w4/Triangle.java diff --git a/w4/Triangle.java b/w4/Triangle.java new file mode 100644 index 0000000..ac6e661 --- /dev/null +++ b/w4/Triangle.java @@ -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)); + } +} \ No newline at end of file