qq_57776232 2021-06-18 09:27 采纳率: 100%
浏览 95
已采纳

写一个图形计算器,能显示面积和名称

实验内容:利用面向对象的程序设计方法,设计一个图形面积“计算器”,希望计算器可以计算许多图形的面积。要求如下:

(1)编写抽象类Shape

Shape抽象类有2个抽象方法getArea()和getShapeName(),即要求各种具体的图形给出自己的面积和名称。

(2)编写计算器类CalculatedArea

该类有一个showArea(Shape  shape)方法,该方法的参数是Shape类型。即参数shape可以调用Shape的子类重写的getArea()方法计算具体图形的面积、调用子类重写的getShapelName()方法显示图形的名称。

(3)编写Shape类的子类:矩形Rect,三角形Triangle等类。

(4)编写检测类,验证程序的功能。

  • 写回答

3条回答 默认 最新

  • 关注
    import java.util.Scanner;
    
    public class Test {
    
    	public static void main(String[] args) {
    
    		Shape circle = new Circle(5.6);
    		System.out.println("圆的面积:" + circle.getArea());
    		System.out.println("圆的周长:" + circle.getPerimeter());
    		
    		Shape rect = new Rectangle(6.1,6.3);
    		System.out.println("矩形的面积:" + rect.getArea());
    		System.out.println("矩形的周长:" + rect.getPerimeter());
    	}
    
    }
    interface Shape{
    	double getArea();
    	double getPerimeter();
    }
    
    class Circle implements Shape{
    
    	double radius; //半径
    	public Circle() {}
    	public Circle(double radius) {
    		this.radius = radius;
    	}
    	@Override
    	public double getArea() {
    		return 3.14*radius*radius;
    	}
    
    	@Override
    	public double getPerimeter() {
    		return 2*radius*3.14;
    	}
    }
    class Rectangle implements Shape{
    
    	private double height;
    	private double width;
    	public Rectangle() {}
    	public Rectangle(double height,double width) {
    		this.height = height;
    		this.width = width;
    	}
    	@Override
    	public double getArea() {
    		return width*height;
    	}
    
    	@Override
    	public double getPerimeter() {
    		return 2*height*width;
    	}
    	
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测