编写一个Triangle类代表三角形,在三角形中,任意俩边之和总大于第三边。创建一个IllegalTriangleException异常类,在Triangle类的构造方法中,如果创建的三角形的边违反了这一规则,则抛出一个IllegalTringleException类对象
时间: 2024-02-12 15:08:40 浏览: 73
设计一个Triangle类
好的,让我来解答您的问题。
以下是Triangle类的代码实现:
```java
public class Triangle {
private double side1;
private double side2;
private double side3;
public Triangle(double side1, double side2, double side3) throws IllegalTriangleException {
if (side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1) {
throw new IllegalTriangleException("Invalid sides for a triangle!");
}
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public double getArea() {
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
public double getPerimeter() {
return side1 + side2 + side3;
}
@Override
public String toString() {
return "Triangle{" +
"side1=" + side1 +
", side2=" + side2 +
", side3=" + side3 +
'}';
}
}
```
Triangle类有三个私有成员变量表示三角形的三条边,一个构造方法,一个计算三角形面积的方法和一个计算三角形周长的方法。在构造方法中,如果传入的三条边不满足三角形边长的要求,则抛出一个IllegalTriangleException异常。注意构造方法中使用了throws关键字来声明可能抛出异常。
以下是IllegalTriangleException类的代码实现:
```java
public class IllegalTriangleException extends Exception {
public IllegalTriangleException(String message) {
super(message);
}
}
```
IllegalTriangleException类继承自Exception类,表示一个无效的三角形异常。在构造方法中,可以传入一个字符串作为异常信息。
您可以在其他类中使用Triangle类,并在使用时捕获可能抛出的IllegalTriangleException异常。例如:
```java
try {
Triangle triangle = new Triangle(3, 4, 10);
System.out.println(triangle);
System.out.println("Area: " + triangle.getArea());
System.out.println("Perimeter: " + triangle.getPerimeter());
} catch (IllegalTriangleException e) {
System.out.println(e.getMessage());
}
```
在这个例子中,我们尝试创建一个三角形对象,但是传入的三条边不满足三角形边长的要求,因此会抛出IllegalTriangleException异常。在catch块中,我们打印异常信息。如果传入的三条边满足三角形边长的要求,则会正常创建Triangle对象并打印其信息。
阅读全文