主要要求如下。

(1) 编写一个抽象类Shape:该类中有两个抽象方法double area()和String getShapeName(),分别实现如下功能:各种具体的几何图形计算出自己的面积、和给出各自的图形名称。

(2) 编写Shap类的2个子类:Circle和Rectangle类。

(2.1)Circle中,重写 area() 方法,实现返回指定圆的面积(公式中 π 使用 Math.PI 计算);和重写getShapeName()方法,实现返回字符串“Circle”;

而且Circle中有1个成员变量,表示半径,即double r; ,设计一个构造函数Circle(double r),由参数r指定半径值。

(2.2)Rectangle中,重写 area() 方法,实现返回指定矩形的面积;和重写getShapeName()方法,实现返回字符串“Rectangle”。

而且Rectangle中有2个成员变量,分别表示高和宽,即double h,w;,设计一个构造函数Rectangle (double h, double w),由参数h,w指定高和宽的值。

(3) 编写图形面积计算器类Calculator:该类有一个void play (Shape shape) 方法,在该方法中先通过Shape 类型的参数shape调用其子类重写的getShapeName()方法,来获取该图形名称,再调用其子类重写的area()方法,来获取该图形的面积,最后按一定格式将这些信息输出(输出时小数位数保留2位)。

(4) 主类Main,在该类的main方法中包含如下代码,实现让面积计算器可以计算相应的图形的面积。其中:

(4.1)如果键盘输入“1”回车,表示计算圆形面积,接着输入圆形的半径值如10,则输出:Circle:314.16;

(4.2)如果键盘输入“2”回车,表示计算矩形面积,接着输入矩形的高与宽值如10与2,则输出:Rectangle:20.00;

(4.3)如果键盘输入其他值,则输出:No corresponding shape!。

输入的第一行是一个数字,1对应圆,2对应矩形,其他输入没有对应图形。

输入的第二行是更加第一行的选择进行的。

输入格式:

由键盘输入两行

输入的第一行是一个数字(其中1对应圆,2对应矩形,其他输入值没有对应图形)。

输入的第二行是根据第一行的选择进行的。若第一行输入1,则第二行输入一个半径值;若第一行输入2,则输入两个数字,分别为高与宽。若输入除了1和2的其他整数,则不用输入第二行。

输出格式:

输出1行,显示:图形名称和图形面积(输出时保留2为小数),中间用英文状态下的冒号隔开,例如:Rectangle:20.00

若输入除了1和2的其他整数,屏幕显示:No corresponding shape!

输入样例:

1

10

输出样例:

Circle:314.16

输入样例:

5

输出样例:

No corresponding shape!

import java.util.Scanner;                         //加载Scanner类abstract class Shape {                            //创建一个抽象类Shapeabstract double area();                       //创建两个抽象方法abstract String getShapeName();
}class Circle extends Shape{                      //创建一个子类,继承抽象类,因为为非抽象子类,必须重写父类的抽象方法double r;                                    //创建一个对象;Circle(double r){                            //创建半径rthis.r=r;}double area(){                               //返回圆形的面积return r*r*Math.PI;}String getShapeName() {                       //返回图形的类型return "Circle";}
}class Rectangle extends Shape{                    //创建一个矩形子类,同上,需要重写方法double h;double w;Rectangle(double h,double w){this.h=h;this.w=w;}double area(){return h*w;}String getShapeName(){return "Rectangle";}
}class Calculator{                                         //创建一个计算类public void play(Shape shape) {                       //创建一个计算方法,并创建一个Shape对象,用于运用其方法System.out.printf("%s:%.2f",shape.getShapeName(),shape.area());}
}public class Test {public static void main(String[] args) {Calculator  calculator =new Calculator ();          //创建Calculator对象Scanner sc=new Scanner(System.in);                 //用于输入int ch=sc.nextInt();switch(ch){                                        //使用Switch结构case 1:                                        //输入1则调用求圆的面积double r=sc.nextDouble();calculator.play(new Circle(r));break;case 2:                                        //输入2则求矩形的面积double h=sc.nextDouble();double w=sc.nextDouble();calculator.play(new Rectangle(h,w));break;default:                                       //若既没有输入1,也没有输入2,则返回错误提示System.out.println("No corresponding shape!");}}
}

设计一个几何图形的面积计算器,希望这个计算器可以计算圆和矩形等图形的面积相关推荐

  1. Python 实战案例--计算圆、矩形的周长和面积

    import math# 计算圆的面积 def circle_area(radius):return math.pi * radius * radius# 计算圆的周长 def circle_peri ...

  2. 【Java】设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。

    题目要求:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaNam ...

  3. 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:

    设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(),即 ...

  4. Java练习 | 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声(附代码)

    问题:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声. 要求如下: 编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(), ...

  5. 设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声

    设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声,要求如下: 1.编写抽象类Animal Aminal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自 ...

  6. Java计算圆、长方形、正方形的面积及周长,并比较打印各个图形的大小

    代码分两部分来现实: 先求出各个图形的面积和周长: 在比较各个图形的大小: 第一点解答如下: (创建一个图形类Graph:派生类:圆形类Circle.正方形类Square.长方形类Rectangle: ...

  7. Java小程序之计算三角形/圆形/矩形的周长和面积

    题目:用Java编写一个计算随意给定值的三角形/圆形/矩形的周长和面积 代码如下: 文件名:Shape.java /*** 抽象类Shape 是其他三个形状的父类 * 其他三个类要继承重写getAre ...

  8. C语言计算圆的角度与弧度、面积、周长计算

    #include <stdio.h> #include <math.h> #define PI 3.1415926 // 宏定义 #define GET_ANGLE(rad) ...

  9. Java实验之设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声

    编写抽象类Animal Animal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自己的叫声和种类名称 编写模拟器类Simulator 该类有一个playSo ...

  10. 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声

    编写抽象类Animal : Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称. 编写模拟器类Simulator: 该类有一个pla ...

最新文章

  1. Kataspace:用HTML5和WebGL创建基于浏览器的虚拟世界
  2. 送ta一朵独一无二的玫瑰花
  3. 【MATLAB统计分析与应用100例】案例003:matlab调用smooth函数进行加噪数据的平滑处理
  4. 计算机减法英语,英语的加减乘除如何表达?
  5. c语言求一个数的阶乘值代码,求10000的阶乘(c语言代码实现)
  6. sql tempdb清理_SQL Server TempDB数据库和闩锁争用
  7. python 导入的nan怎么解决_用Python处理了数据还要导入Excel做图表?直接Python做漂亮图表...
  8. LeetCode81. 搜索旋转排序数组 II(二分查找)
  9. linux系统下find命令的使用
  10. 这款应用,让Windows软件也能在Mac上使用起来
  11. 镀铬亮条怎么修复_「日系之光」曾经的亚洲C级车排面,十二代丰田皇冠全面修复日记...
  12. dojo mobile问题汇总
  13. 微信小程序列表局部(单条)刷新
  14. Qt通过ODBC连接opengauss数据库
  15. 智慧工厂管理平台建设,智慧工厂管理系统开发
  16. 边境的悍匪—机器学习实战:第五章 支持向量机
  17. 法大大连续两年中国电子签名市场份额第一
  18. python根须系统斜杠_尝试在Win10系统搭建esp32编译系统.下
  19. TCP报文( tcp dup ack 、TCP Retransmission)
  20. 数据库(Mysql)学习

热门文章

  1. 周末不知道学什么?这份 Android 优秀技术文章清单请收下
  2. 网线:568A 568B线序
  3. 百度必应谷歌图片自动爬取库icrawler使用体会
  4. Unhandled exception at 0x000007FEFD19A06D in test.exe: Microsoft C++ exception: cv::Exception at mem
  5. 电脑消除,彻底清除电脑垃圾,让电脑运行更流畅!
  6. uc3854 matlab仿真,基于UC3854硬开关PFC变换电路设计课程设计.doc
  7. 广外专版-msn聊天记录查看器
  8. 基于51单片的电风扇系统
  9. 计算机专业轻薄本还是游戏本,十大精品笔记本电脑(高端轻薄本和高端游戏本)...
  10. 华为云文件夹服务器,华为云空间服务器在哪个文件夹