【案例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对象,然后分别计算了圆形和长方形的面积和周长。

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

  1. 登录注册小程序(JAVA基础案例教程第二章-课后作业)

    [案例介绍] 任务描述 编写程序实现简单的登录注册功能.程序包含以下4个功能: (1)登录功能,用户输入正确的账号密码进行成功: (2)注册功能,输入用户名和密码进行注册: (3)查看功能,查看所有的 ...

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

    [案例介绍] 案例描述 长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算 公式.使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长. 运行结果 [案例目标] 学会& ...

  3. [案例4-5]图形的面积与周长计算程序

    案例描述: 长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式.使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长. 运行结果: 代码如下: 创建抽象类: /** ...

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

    长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式.使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长. 此案例分为五个类 shape circle Rectan ...

  5. 【Java编程学习】案例4-5 图形的面积与周长计算程序

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

  6. 输入圆的半径计算面积和周长-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第2章-课后作业)

    [案例2-5]输入圆的半径计算面积和周长 一.案例描述 考核知识点 toFixed().isNaN.window.document对象 练习目标 掌握toFixed()方法. 掌握数据类型检测. 了解 ...

  7. 计算圆的面积和周长-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第4章-课后作业)

    [案例4-5]计算圆的面积和周长 一.案例描述 考核知识点 Math.PI().Math.pow() 练习目标 掌握Math.pow()用法. 掌握Math.PI()用法. 了解圆的周长公式. 了解圆 ...

  8. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第五章课后习题(课程介绍专栏效果)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第五章:"课程介绍"专栏-课后习题参考代码 题目原型: 请结合给出的素材,运用列表标记,超链接标记以 ...

  9. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第四章课后习题(播放器图标)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第四章:播放器图标-课后习题参考代码 ........ 记得 关注,收藏,评论哦,作者将持续更新.... 我自己做的效果 ...

最新文章

  1. 机器学习最有价值的6个经验教训
  2. mnn c++ windows 调用实例
  3. 试题 历届试题 带分数(全排列)
  4. 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例
  5. apache加载php配置
  6. 将物体固定在坐标某个点_坐标变换(2)—不同坐标系下的变换
  7. JsonCpp测试代码使用新API
  8. Ubuntu 安装 Redis
  9. 苹果收购英特尔手机芯片业务;西门子将在华建立 5G 研发中心;React Native 0.60.4 发布 | 极客头条...
  10. php验证码完整功能,用PHP实现验证码功能
  11. 4K视频在线看,网速跟不上怎么办?
  12. 嵌入式面试—项目篇(二)全国大学生智能汽车竞赛(团队项目)
  13. c51 c语言 16位二进制转换为bcd码,16位二进制转换为BCD码的C51汇编程序.doc
  14. 教您启用iphone 4 使用FaceTime和蜂窝数据网、彩信!设置(不需補丁、不需恢复系统)
  15. 罗格斯大学计算机信息工程专业排名,罗格斯大学硕士统计学专业排名?这一些重点迟早得掌握...
  16. 前端工程师之华为手机如何打开开发者模式并进行手机调试查看原生APP效果。
  17. 【金猿人物展】数睿数据创始人兼CEO穆鸿:大数据价值创造关键在于应用普惠...
  18. python中大于0怎么表示_python怎么筛选列表中大于0的数据?
  19. vim 错误提示解决:The ycmd server SHUT DOWN (restart with ‘:YcmRestartServer‘). Unexpected exit code 1.
  20. Linux中用tar包配置samba,Linux建域使用samba(二)——安装Samba

热门文章

  1. 定制开发迅捷进销存圆满完成!
  2. sheetjs如何设置导出的单元格格式为文本
  3. 2021年10大流行软件测试工具
  4. 批量统计文件夹内xlsx行数
  5. linux 硬件加密 ssd,市面上多种流行的固态硬盘产品存在硬盘加密机制绕过漏洞...
  6. qq群bug曝光,利用qq群推广日引过万色流
  7. 2.14 OrCAD中怎么运用表格创建复杂的元器件?
  8. 液晶显示器闪烁条纹_条纹液晶显示器的开始...和多显示器生产力的终结?
  9. 计算机应用技术代表图案,基于计算机技术的扎染图案设计研究与应用
  10. 校队训练 | 数论专题