图形的面积与周长计算程序-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)

【案例4-7】图形的面积与周长计算程序

欢迎点赞关注收藏

【案例介绍】

  1. 案例描述

长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。

  1. 运行结果

【案例分析】

1)定义父类Shape作为抽象类,并在类中定义抽象方法求周长和面积。

2)定义Shape子类圆形(circle),具有半径属性和常量PI,同时必须实现父类中的抽象方法。

3)定义Shape子类长方形(rectangle),具有长和宽的属性,同时必须实现父类的抽象方法。

4)创建图形面积周长计算器(ShapeCalculate),具有计算不同图形面积和周长的方法。

5)创建测试类TestShape类,在其main()方法中对ShapeCalculate计算面积和周长方法进行测试。

【案例实现】

Shape.java

  1. public abstract class Shape {
  2.     // 抽象方法: 获取面积
  3.     public abstract double getArea();
  4.     // 抽象方法:获取周长
  5.     public abstract double getPerimeter();
  6. }

上述代码中,在Shape类中定义了面积和周长的抽象方法。

Cirle.java

  1. public class Circle implementsShape {
  2.     private double radius = 0;    // 圆的半径
  3.     private final static double PI = 3.14;    // 常量,圆周率
  4.         // 有参构造,初始化圆半径
  5.     public Circle(double radius) {  
  6.         this.radius = radius;
  7.     }
  8.     // 求圆面积
  9.     public double getArea() {
  10.         return PI*radius*radius;
  11.     }
  12.     // 求圆周长
  13.     public double getPerimeter() {
  14.         return 2*radius*PI;
  15.     }
  16. }

上述代码中,定义了圆形Circle类并继承了Shape类,再Circle类中重写了Shape中的getArea()getPerimeter()方法,分别计算圆的面积和周长。

Rectangle.java

  1. public class Rectangle implements Shape {
  2.     private double length = 0;    // 长方形的长
  3.     private double width = 0;     // 长方形的宽
  4.     // 有参构造,初始化长方形的长和宽
  5.     public Rectangle(double length, double width) {
  6.         super();
  7.         this.length = length;
  8.         this.width = width;
  9.     }
  10.     public double getArea() {
  11.         return this.length*this.width;
  12.     }
  13.     public double getPerimeter() {
  14.         return 2*(this.length+this.width);
  15.     }
  16. }

上述代码中,定义了长方形Rectangle类并继承了Shape类,再Circle类中重写了Shape中的getArea()getPerimeter()方法,分别计算长方形的面积和周长。

ShapeCaculate.java

  1. public class ShapeCaculate {
  2.     // 可以计算任意shape子类的面积
  3.     public void calArea (Shape shape) {
  4.         System.out.println(shape.getArea());
  5.     }
  6.     // 可以计算任意shape子类的周长
  7.     public void calPerimeter(Shape shape) {
  8.         System.out.println(shape.getPerimeter());
  9.     }
  10. }

创建了图形面积周长计算器ShapeCalculate类,calArea ()方法用来计算不同图形面积,calPerimeter()方法用来计算不同图形的周长。

TestShape.java

  1. public class TestShape {
  2.     public static void main(String[] args) {
  3.         // 创建图形计算器
  4.         ShapeCaculate sc = new ShapeCaculate();
  5.         // 创建长方形和圆形对象
  6.         Shape rectangle = new Rectangle(3, 4);         // <-------多态
  7.         Circle circle = new Circle(3);
  8.         // 求长方形和圆形的面积
  9.         System.out.println("长方形的面积:");
  10.         sc.calArea(rectangle);
  11.         System.out.println("圆形的面积:");
  12.         sc.calArea(circle);
  13.         // 求长方形和圆形的周长
  14.         System.out.println("长方形的周长:");
  15.         sc.calPerimeter(rectangle);
  16.         System.out.println("圆形的周长:");
  17.         sc.calPerimeter(circle);
  18.     }
  19. }

在上述代码中,分别创建了一个圆形circle对象和一个长方形rectangle对象,然后分别计算了圆形和长方形的面积和周长。

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaozhima-dun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值