java自定义类Triangle,其中有成员 x,y,z,作为三边长,构造方法Triangle(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常类NotTriangleException,否则显示正确信息。在另外一个类中的主方法中构造一个Triangle对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
时间: 2024-03-20 13:43:58 浏览: 89
好的,我可以帮你解决这个问题。以下是Triangle类的代码:
```java
public class Triangle {
private double x;
private double y;
private double z;
public Triangle(double a, double b, double c) throws NotTriangleException {
if (a + b <= c || a + c <= b || b + c <= a) {
throw new NotTriangleException("这三条边不能构成一个三角形!");
}
x = a;
y = b;
z = c;
}
public double getArea() {
double p = (x + y + z) / 2;
return Math.sqrt(p * (p - x) * (p - y) * (p - z));
}
public void showInfo() {
System.out.println("这个三角形的三边长分别为:" + x + "、" + y + "、" + z);
}
}
```
在Triangle类的构造方法中,我们判断了三条边是否能构成一个三角形,如果不能,就抛出自定义异常类NotTriangleException。getArea方法用海伦公式求出三角形的面积,showInfo方法显示三角形的三边长。
接下来,我们可以在另外一个类的主方法中构造Triangle对象,并显示三角形信息和面积:
```java
import java.util.Scanner;
public class TestTriangle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
try {
System.out.print("请输入三角形的三个边长:");
double a = input.nextDouble();
double b = input.nextDouble();
double c = input.nextDouble();
Triangle tri = new Triangle(a, b, c);
tri.showInfo();
System.out.println("这个三角形的面积为:" + tri.getArea());
} catch (NotTriangleException e) {
System.out.println(e.getMessage());
}
}
}
```
在主方法中,我们从命令行输入三角形的三个边长,然后构造Triangle对象。如果三条边不能构成一个三角形,就会捕获到NotTriangleException异常,并显示异常信息。如果能构成一个三角形,就调用showInfo方法和getArea方法显示三角形信息和面积。
希望这个代码能够帮助到你!
阅读全文