2 sylvia1997 sylvia1997 于 2015.06.18 16:46 提问

求数组中所有几何对象的面积之和

方法签名如下:
public static double sumArea(GeometricObject[] a)编写测试程序,创建三个对象
(一个圆,一个三角形,一个矩形)的数组。并使用sumArea方法求它们的总面积。

4个回答

bdmh
bdmh   Ds   Rxr 2015.06.18 17:03

GeometricObject作为基类,那三种形状作为子类,基类公布计算面积的接口,子类实现具体计算,剩下的就是遍历,调用接口,汇总

tongyi55555
tongyi55555   2015.06.18 19:49

        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

tongyi55555
tongyi55555   2015.06.18 18:27

你这个GeometricObject是自己定义的吧?

beacon_2011
beacon_2011   Rxr 2015.06.19 12:40

做个for循环,加一下

Csdn user default icon
上传中...
上传图片
插入图片