现有以下接口的声明:
public interface CalcArea l
double getArea () ;
)
(1)定义圆类Circle 并实现接口 CalcArea,圆类的主要成员变量为半径,构造方法的参数
于初始化半径。
(2)定义矩形类 Rectangle 并实现接口 CalcArea,矩形类的主要成员变量包括长和宽,构
方法的参数用于初始化长和宽。
(3)现有如下类 Tester,其功能是求存储在一个数组中的多个图形的面积之和,要求补全
中缺失的代码。
pub1ic class Testerl
static①
_shapes = I new Circle (1.0), new Rectangle(3. 0, 4. 0), new circie
(8.0));
public static void main (String l ] args) 1
System.out-printin("total area = "+ sumArea (shapes);
)
pubiic static double sumArea(
②
shapes) (
③
)
-·二仁的结果.
(1)定义圆类 Circle 并实现接口 CalcArea ,圆类的主要成员变量为半径,构造方法的参数用于初始化半径。
public class Circle implements CalcArea {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
(2)定义矩形类 Rectangle 并实现接口 CalcArea ,矩形类的主要成员变量包括长和宽,构造方法的参数用于初始化长和宽。
public class Rectangle implements CalcArea {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double getArea() {
return length * width;
}
}
(3)现有如下类 Tester ,其功能是求存储在一个数组中的多个图形的面积之和,要求补全其中缺失的代码。
public class Tester {
public static final CalcArea[] shapes = {new Circle(1.0), new Rectangle(3.0, 4.0), new Circle(8.0)};
public static void main(String[] args) {
System.out.println("total area = " + sumArea(shapes));
}
public static double sumArea(CalcArea[] shapes) {
double totalArea = 0.0;
for (CalcArea shape : shapes) {
totalArea += shape.getArea();
}
return totalArea;
}
}
这段代码定义了一个名为 Tester 的类,其中包含一个静态的 CalcArea 类型数组 shapes ,以及一个静态方法 sumArea 用于计算数组中所有图形的面积之和。
在 main 方法中,调用了 sumArea 方法并传递 shapes 数组作为参数,将计算结果输出到控制台。
在 sumArea 方法中,定义了一个变量 totalArea 用于存储总面积,然后使用 for-each 循环遍历数组中的每个图形对象,通过调用图形对象的 getArea 方法获取其面积,并累加到 totalArea 中。最后,返回计算得到的总面积。
完整的代码实现了计算存储在数组中的多个图形的面积之和的功能。