问题描述
- 求数组中所有几何对象的面积之和
-
方法签名如下:
public static double sumArea(GeometricObject[] a)编写测试程序,创建三个对象
(一个圆,一个三角形,一个矩形)的数组。并使用sumArea方法求它们的总面积。
解决方案
GeometricObject[] gobj = new GeometricObject[3];
gobj[0] = new Triangle(new Point(1.0, 2.0), new Point(1.0, 1.0),
new Point(0.0, 2.0));
gobj[1] = new Circle(new Point(1.0, 2.0), 3);
gobj[2] = new Rectangle(new Point(1.0, 2.0), new Point(1.0, 5.0),
new Point(1.0, 0.0), new Point(5.0, 0.0));
double sumArea = 0;
for (int i = 0; i < gobj.length; i++) {
if (gobj[i] != null) {
double area = gobj[i].getArea();
System.out.println(gobj[i].toString() + "其面积为:" + area);
sumArea += area;
}
}
System.out.println("总面积为:" + sumArea);
输出结果为:
三角形的三个顶点为:点(1.0,2.0);点(1.0,1.0);点(0.0,2.0);其面积为:0.5
圆形的中心为:点(1.0,2.0);半径为:3.0其面积为:28.27
矩形的四个顶点为:点(1.0,2.0);点(1.0,5.0);点(1.0,0.0);点(5.0,0.0);其面积为:6.0
总面积为:34.769999999999996
解决方案二:
GeometricObject作为基类,那三种形状作为子类,基类公布计算面积的接口,子类实现具体计算,剩下的就是遍历,调用接口,汇总
解决方案三:
你这个GeometricObject是自己定义的吧?
解决方案四:
做个for循环,加一下
时间: 2024-10-03 09:59:39