试定义一个三角形 Triangle 类,在 Triangle 类中以点 MyPoint 类的 3 个对象 p1、p2、p3 作为数据成员,表示三角形的三个顶点。Triangle 类具有计算三角形 的周长和面积的功能。请编写程序上机调试并运行。
时间: 2024-12-19 14:26:00 浏览: 38
首先,我们定义一个名为`MyPoint`的简单类,表示二维坐标系中的一个点:
```java
public class MyPoint {
double x;
double y;
public MyPoint(double x, double y) {
this.x = x;
this.y = y;
}
// Getters and setters for x and y coordinates
public double getX() { return x; }
public void setX(double newX) { x = newX; }
public double getY() { return y; }
public void setY(double newY) { y = newY; }
}
```
接下来,我们可以创建`Triangle`类,它有三个`MyPoint`类型的成员变量,并提供计算周长和面积的方法:
```java
import java.lang.Math;
public class Triangle {
private MyPoint p1;
private MyPoint p2;
private MyPoint p3;
public Triangle(MyPoint p1, MyPoint p2, MyPoint p3) {
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
}
// Calculate the perimeter of the triangle
public double getPerimeter() {
double a = Math.sqrt(Math.pow(p1.getX() - p2.getX(), 2) + Math.pow(p1.getY() - p2.getY(), 2));
double b = Math.sqrt(Math.pow(p2.getX() - p3.getX(), 2) + Math.pow(p2.getY() - p3.getY(), 2));
double c = Math.sqrt(Math.pow(p3.getX() - p1.getX(), 2) + Math.pow(p3.getY() - p1.getY(), 2));
return a + b + c;
}
// Calculate the area using Heron's formula
public double getArea() {
double s = (getPerimeter() / 2);
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
}
```
为了演示如何创建`Triangle`对象并使用它的方法,你可以编写如下的测试代码:
```java
public static void main(String[] args) {
MyPoint p1 = new MyPoint(0, 0);
MyPoint p2 = new MyPoint(3, 4);
MyPoint p3 = new MyPoint(6, 0);
Triangle triangle = new Triangle(p1, p2, p3);
System.out.println("Triangle perimeter: " + triangle.getPerimeter());
System.out.println("Triangle area: " + triangle.getArea());
}
```
当你运行这段代码时,会输出指定三角形的周长和面积。
阅读全文