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
相关产品推荐
相关产品推荐

