编写三角形类,计算三角形面积和周长,用上两个构造方法和全部getter和setter,并判断是否是直角三角形
时间: 2024-05-01 14:19:02 浏览: 92
下面是一个基本的三角形类的示例代码,包括计算面积和周长、判断是否是直角三角形的方法:
```java
public class Triangle {
private double a, b, c;
// 构造方法1:通过三边长度创建一个三角形对象
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 构造方法2:通过三个顶点的坐标创建一个三角形对象
public Triangle(double x1, double y1, double x2, double y2, double x3, double y3) {
this.a = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
this.b = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2));
this.c = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2));
}
// 获取三角形的三边长度
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
// 计算三角形的面积
public double getArea() {
double p = (a + b + c) / 2; // 计算半周长
return Math.sqrt(p * (p - a) * (p - b) * (p - c)); // 海伦公式
}
// 计算三角形的周长
public double getPerimeter() {
return a + b + c;
}
// 判断是否是直角三角形
public boolean isRightTriangle() {
// 三边平方和最大的边是斜边,如果满足勾股定理则为直角三角形
double max = Math.max(Math.max(a, b), c);
return max == a ? Math.pow(a, 2) == Math.pow(b, 2) + Math.pow(c, 2)
: max == b ? Math.pow(b, 2) == Math.pow(a, 2) + Math.pow(c, 2)
: Math.pow(c, 2) == Math.pow(a, 2) + Math.pow(b, 2);
}
}
```
示例用法:
```java
// 通过三边长度创建一个三角形对象
Triangle t1 = new Triangle(3, 4, 5);
// 通过三个顶点的坐标创建一个三角形对象
Triangle t2 = new Triangle(0, 0, 3, 0, 0, 4);
// 获取三角形的三边长度
double a = t1.getA();
double b = t1.getB();
double c = t1.getC();
// 计算三角形的面积和周长
double area = t1.getArea();
double perimeter = t1.getPerimeter();
// 判断是否是直角三角形
boolean isRightTriangle = t1.isRightTriangle();
```
阅读全文