使用类的重载构造方法生成不同的三角形对象,计算各三角形的周长
时间: 2024-10-16 14:10:18 浏览: 31
在面向对象编程中,通过类的重载构造方法可以创建多种类型的三角形对象,并为每种类型提供特定的属性。例如,我们可以定义一个名为`Triangle`的类,其中包含三个边长的属性,然后为这个类提供两个或更多的构造函数,每个构造函数接受不同组合的参数来表示不同类型的三角形,比如等边三角形、等腰三角形或直角三角形。
```java
class Triangle {
private double sideA;
private double sideB;
private double sideC;
// 重载构造方法1 - 等边三角形
public Triangle(double side) {
this.sideA = side;
this.sideB = side;
this.sideC = side;
}
// 重载构造方法2 - 等腰三角形
public Triangle(double sideA, double sideB) {
this.sideA = sideA;
this.sideB = sideB;
if (sideA != sideB) {
throw new IllegalArgumentException("Invalid sides for isosceles triangle");
}
this.sideC = Math.abs(sideA - sideB);
}
// 重载构造方法3 - 直角三角形
public Triangle(double a, double b) {
this.sideA = a;
this.sideB = b;
this.sideC = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
}
// 计算三角形周长
public double perimeter() {
return sideA + sideB + sideC;
}
}
// 使用示例
public static void main(String[] args) {
Triangle equilateral = new Triangle(5); // 创建一个等边三角形
Triangle isosceles = new Triangle(4, 4); // 创建一个等腰三角形
Triangle rightangled = new Triangle(3, 4); // 创建一个直角三角形
System.out.println(equilateral.perimeter());
System.out.println(isosceles.perimeter());
System.out.println(rightangled.perimeter());
}
```
阅读全文