[案例4-5]图形的面积与周长计算程序
作者:互联网
案例描述:
长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。
运行结果:
代码如下:
创建抽象类:
/**
* 2022/3/20
*/
public abstract class Shape {
// 获取面积
abstract double Area();
// 获取周长
abstract double Perimeter();
}
创建长方形类和正方形类继承抽象类:
/**
* 2022/3/20
*/
public class Circular extends Shape{
// 圆形周长:2Πr ,面积:Πr的平方
private double radius = 0; // 半径
private final double PI = 3.14; // 圆周率
public Circular(double radius) {
this.radius = radius;
}
@Override
double Area() { // 面积
return PI*radius*radius;
}
@Override
double Perimeter() { // 周长
return 2*radius*PI;
}
}
/**
* 2022/3/20
*/
public class Rectangle extends Shape{
// 长方形面积:长*宽,周长:2*(长+宽)
private double length = 0; // 长
private double width = 0; // 宽
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
double Area() { // 面积
return length*width;
}
@Override
double Perimeter() { // 周长
return 2*(length+width);
}
}
创建计算周长与面积的类:
/**
* 2022/3/20
*/
public class ShapeCaculate {
// 创建可以计算任意子类面积的方法
public void calArea(Shape shape){
System.out.println(shape.Area());
}
// 创建可以计算任意子类周长的方法
public void calPerimeter(Shape shape){
System.out.println(shape.Perimeter());
}
}
最后创建测试类:
import java.util.Scanner;
/**
* 2022/3/20
*/
public class Demo {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入要计算的长方形的长和宽:");
double length = in.nextDouble();
double width = in.nextDouble();
System.out.println("请输入要计算的圆形的半径:");
double radius = in.nextDouble();
// 创建图形计算器对象
ShapeCaculate sc = new ShapeCaculate();
// 创建长方形和圆形对象
Rectangle r = new Rectangle(length,width);
Circular c = new Circular(radius);
System.out.println("长方形的周长为");
// 通过计算机对象调方法,实现输出
sc.calPerimeter(r);
System.out.println("长方形的面积为:");
sc.calArea(r);
System.out.println("圆形的周长为:");
sc.calPerimeter(c);
System.out.println("圆形的面积为:");
sc.calArea(c);
}
}
标签:周长,width,double,System,案例,radius,图形,public 来源: https://blog.csdn.net/qq_58652572/article/details/123609616