您所在的位置:Seago-Microsoft Windows>>Windows管理脚本>> java作业啊(抽象类和接口)!!!

java作业啊(抽象类和接口)!!!

作者:管理员 来源:新浪爱问 日期:2008-04-21 

编写一个方法,求数组中所有的几何对象的面积之和。方法头如下:
public static double sumArea(GeometricObject[] a)
编写测试程序,创建三个对象(一个圆、一个圆柱体和一个矩形)的数组,并使用sumArea方法求它们的总面积。
谢谢了!!! 电脑问题网给出的最佳答案 GeometricObject.java
--------------------

public abstract class GeometricObject {
abstract double getArea();
}

--------------------
Circle.java
public class Circle extends GeometricObject {

private double r;

public void setR(double r) {
this.r = r;
}

public double getR() {
return r;
}

public double getArea() {
//System.out.println("圆形");
return Math.PI * Math.sqrt(r);
}
}
-----------------------------
Cylinder.java
public class Cylinder extends GeometricObject {

private double h;// 高

private double r;// 底面半径

public double getH() {
return h;
}

public void setH(double h) {
this.h = h;
}

public double getR() {
return r;
}

public void setR(double r) {
this.r = r;
}

public double getArea() {
//System.out.println("圆柱体");
return Math.PI * Math.sqrt(r) * 2 2 * Math.PI * r * h;
}
}
----------------------------
Rectangle.java
---------------------------
public class Rectangle extends GeometricObject {

private double h;// 宽

private double w;// 长

public double getArea() {
//System.out.println("矩形");
return h * w;
}

public double getH() {
return h;
}

public void setH(double h) {
this.h = h;
}

public double getW() {
return w;
}

public void setW(double w) {
this.w = w;
}
}
---------------------------------
测试!这里提供了一个构造GeometricObject数组的方法!
也可以不用,根据需要自定义!
public class MTest {

// 计算总和
public static double sumArea(GeometricObject[] a) {
double result = 0.0d;
for (int i = 0; i < a.length; i ) {
result = result a[i].getArea();
}
return result;
}

// 创建一个GeometricObject数组
public static GeometricObject[] generateGOA() {
GeometricObject goa[] = new GeometricObject[3];
Circle goCir = new Circle();
goCir.setR(2);
goa[0] = goCir;
Cylinder goCy = new Cylinder();
goCy.setH(3);
goCy.setR(4);
goa[1] = goCy;
Rectangle goRec = new Rectangle();
goRec.setH(4);
goRec.setW(5);
goa[2] = goRec;
return goa;
}

public static void main(String[] args) {
System.out.print(MTest.sumArea(MTest.generateGOA()));
}

}

thanks!