实验内容:利用面向对象的程序设计方法,设计一个图形面积“计算器”,希望计算器可以计算许多图形的面积。要求如下:
(1)编写抽象类Shape
Shape抽象类有2个抽象方法getArea()和getShapeName(),即要求各种具体的图形给出自己的面积和名称。
(2)编写计算器类CalculatedArea
该类有一个showArea(Shape shape)方法,该方法的参数是Shape类型。即参数shape可以调用Shape的子类重写的getArea()方法计算具体图形的面积、调用子类重写的getShapelName()方法显示图形的名称。
(3)编写Shape类的子类:矩形Rect,三角形Triangle等类。
(4)编写检测类,验证程序的功能。
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;
}
}
这个我做过,需要的话,我发给你哈。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632