You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Triangle类开发疑问:如何访问Point坐标及完善程序

问题解答

1. 是否需要自行创建Point对象?

不需要你在Triangle类里额外创建Point对象。从Main类的代码能看到,创建Triangle实例时已经传入了三个Point对象(比如new Triangle(new Point(0,0), new Point(3,0), new Point(0,4)))。你需要做的是在Triangle类中定义成员变量来保存这三个传入的Point对象,这样后续的area()和centroid()方法才能使用这些坐标进行计算。

2. 在Triangle类中如何访问Point的x、y坐标?

Point类的x和y是私有成员变量,不能直接访问,但它提供了getX()和getY()这两个公共方法,你可以通过调用这两个方法来获取对应坐标值。

完整的Triangle类实现示例

class Triangle {
    // 定义成员变量保存三个顶点的Point对象
    private Point vertexA;
    private Point vertexB;
    private Point vertexC;

    public Triangle(Point a, Point b, Point c) {
        // 将传入的Point对象赋值给成员变量
        this.vertexA = a;
        this.vertexB = b;
        this.vertexC = c;
    }

    public double area() {
        // 鞋带公式计算三角形面积
        double x1 = vertexA.getX();
        double y1 = vertexA.getY();
        double x2 = vertexB.getX();
        double y2 = vertexB.getY();
        double x3 = vertexC.getX();
        double y3 = vertexC.getY();
        
        return Math.abs((x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2)) / 2.0);
    }

    public Point centroid(){
        // 重心坐标为三个顶点坐标的平均值
        double centroidX = (vertexA.getX() + vertexB.getX() + vertexC.getX()) / 3;
        double centroidY = (vertexA.getY() + vertexB.getY() + vertexC.getY()) / 3;
        return new Point(centroidX, centroidY);
    }
}

说明

  • 构造函数的作用是把外部传入的三个顶点对象存到Triangle的成员变量中,确保后续方法能随时调用这些顶点的数据。
  • area()和centroid()方法都是通过调用Point类的getX()、getY()方法来获取坐标值,再完成对应的数学计算。

内容的提问来源于stack exchange,提问作者NewBieJavaPro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:27:30