题目要求:定义抽象类Shape,包含getArea( )和getPerimeter( )两个抽象方法
(1)定义Rectangle类表示矩形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。
(2)定义Square类表示正方形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。
(3)编写测试程序:随机生成10个边长小于100的Rectangle和Square的随机对象,分别输出所有图形的面积之和与周长之和。
import java.util.Random;
// Shape 抽象类
public abstract class Shape {
public abstract double getArea();
public abstract double getPerimeter();
}
// Rectangle 类表示矩形
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
}
// Square 类表示正方形
public class Square extends Shape {
private double sideLength;
public Square(double sideLength) {
this.sideLength = sideLength;
}
@Override
public double getArea() {
return sideLength * sideLength;
}
@Override
public double getPerimeter() {
return 4 * sideLength;
}
}
// 测试程序
public class Main {
public static void main(String[] args) {
// 随机生成10个边长小于100的Rectangle和Square的随机对象
Random random = new Random();
double total_area = 0;
double total_perimeter = 0;
for (int i = 0; i < 10; i++) {
double width = random.nextDouble() * 100;
double height = random.nextDouble()*100;
Rectangle mRectangle = new Rectangle(width, height);
total_area+= mRectangle.getArea();
total_perimeter+=mRectangle.getPerimeter();
}
System.out.println("随机生产的10个Rectangle面积之和为:"+total_area+",周长之和为:"+total_perimeter);
for (int i = 0; i < 10; i++) {
double width = random.nextDouble() * 100;
double height = random.nextDouble()*100;
Square mSquare = new Square(width, height);
total_area+= mSquare.getArea();
total_perimeter+=mSquare.getPerimeter();
}
System.out.println("随机生产的10个Square面积之和为:"+total_area+",周长之和为:"+total_perimeter);
}
}