实验代码
Geometry.java
package lab2;
public abstract class Geometry {
public abstract double getArea();
}
TotalArea.java
package lab2;
public class TotalArea {
Geometry[] tuxing;
double totalArea = 0;
public void setTuxing(Geometry[] t) {
tuxing = t;
}
public double computerTotalArea() {
for (int i = 0; i < tuxing.length; i++) {
totalArea += tuxing[i].getArea();
}
return totalArea;
}
}
Rect.java
package lab2;
public class Rect extends Geometry {
double a, b;
Rect(double a, double b) {
this.a = a;
this.b = b;
}
@Override
public double getArea() {
return a * b;
}
}
Circle.java
package lab2;
public class Circle extends Geometry {
double r;
Circle(double r) {
this.r = r;
}
@Override
public double getArea() {
return 3.1415926 * r * r;
}
}
main.java
package lab2;
public class main {
public static void main(String args[]) {
Geometry[] tuxing = new Geometry[29]; //有 29 个 Geometry 对象
for (int i = 0; i < tuxing.length; i++) { //29 个 Geometry 对象分成两类
if (i % 2 == 0)
tuxing[i] = new Rect(16 + i, 68);
else if (i % 2 == 1)
tuxing[i] = new Circle(10 + i);
}
TotalArea computer = new TotalArea();
computer.setTuxing(tuxing);
System.out.printf("各种图形的面积之和:\n%f", computer.computerTotalArea());
}
}