Java按要求设计三角形类:三角形类有三条边。可以通过输入一条边构造等边三角,输入两条边构造等腰三角,或者输入三条边。要求满足如下条件,否则无法创建出对象:①三边均为正数,且任意两边之和大于第三边;②这种三角形至多构造5个
时间: 2024-11-03 07:17:34 浏览: 5
在Java中设计一个三角形类,首先我们需要考虑的是类的结构和属性,以及相应的构造函数来满足不同的需求。我们可以创建一个名为`Triangle`的类,包含三个私有变量表示边长,然后提供公有的setter和getter方法,同时加入验证边长是否符合条件的逻辑。
```java
public class Triangle {
private double sideA;
private double sideB;
private double sideC;
// 构造函数
public Triangle(double a, double b, double c) {
setSide(a, b, c);
}
// 等边三角形构造函数
public Triangle(double side) throws IllegalArgumentException {
if (side <= 0 || !isValid(side)) throw new IllegalArgumentException("Invalid side length for equilateral triangle.");
this.sideA = side;
this.sideB = side;
this.sideC = side;
}
// 等腰三角形构造函数
public Triangle(double base, double height) throws IllegalArgumentException {
double halfBase = base / 2;
if (height <= 0 || base <= 0 || !isValid(halfBase + height) || !isValid(base - halfBase)) {
throw new IllegalArgumentException("Invalid side lengths for isosceles triangle.");
}
this.sideA = base;
this.sideB = base;
this.sideC = height * 2; // 底部和顶部长度相加
}
// 一般三角形构造函数
public Triangle(double a, double b, double c) throws IllegalArgumentException {
if (!isValid(a) || !isValid(b) || !isValid(c) || !isValid(a + b > c) || !isValid(a + c > b) || !isValid(b + c > a)) {
throw new IllegalArgumentException("Invalid side lengths for scalene triangle.");
}
this.sideA = a;
this.sideB = b;
this.sideC = c;
}
// 边长验证方法
private boolean isValid(double sideLength) {
return sideLength > 0;
}
// getter和setter方法
public double getSideA() { return sideA; }
public void setSideA(double sideA) { this.sideA = sideA; }
// 类似的getter和setter方法可以添加给sideB和sideC
// 其他辅助方法和toString()等
}
阅读全文