Shape接口,并定义抽象方法周长和面积

定义一个Shape接口,并定义抽象方法周长和面积,圆形类和长方形类分别去实现这个接口。最后在测试类里计算半径为5.6的周长和面积;长6.1,宽6.3的长方形的周长和面积

1. 测试类用Main代替


public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 最后在测试类里计算半径为5.6的周长和面积;长6.1,宽6.3的长方形的周长和面积
        
        Circular circular = new Circular(5.6);
        System.out.println("圆形的周长:" + circular.calcPerimeter());
        System.out.println("圆形的面积:" + circular.calcArea());
        
        Rectangle rectangle = new Rectangle(6.1,6.3);
        System.out.println("长方形的周长:" + rectangle.calcPerimeter());
        System.out.println("长方形的面积:" + rectangle.calcArea());
        
    }

}
 

2. 编写Shape接口


public interface Shape {
    
    // 计算面积
    double calcArea();
    
    // 计算周长
    double calcPerimeter();

}
 

 

3. 编写实现类圆形和长方形


public class Circular implements Shape{
    
    private double radius;
    
    
    
    @Override
    public String toString() {
        return "Circular [radius=" + radius + "]";
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public Circular(double radius) {
        // TODO Auto-generated constructor stub
        this.radius = radius;
    }
    
    @Override
    public double calcArea() {
        // TODO Auto-generated method stub
        // 面积计算公式
        return Math.PI * this.radius * this.radius;
    }
    
    @Override
    public double calcPerimeter() {
        // TODO Auto-generated method stub
        // 周长计算公式
        return 2 * Math.PI * this.radius;
    }

}
 


public class Rectangle implements Shape{
    
    private double length;
    private double wide;
    
    public Rectangle(double length,double wide) {
        // TODO Auto-generated constructor stub
        this.length = length;
        this.wide = wide;
    }
    
    @Override
    public String toString() {
        return "Rectangle [length=" + length + ", wide=" + wide + "]";
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    public double getWide() {
        return wide;
    }

    public void setWide(double wide) {
        this.wide = wide;
    }

    @Override
    public double calcArea() {
        // TODO Auto-generated method stub
        // 面积计算公式
        return this.length * this.wide;
    }

    @Override
    public double calcPerimeter() {
        // TODO Auto-generated method stub
        // 周长计算公式
        return 2 * (this.length + this.wide);
    }
}


大体的目录结构:

public interface Shape {

    double getPerimeter(double x,double y);

    double getArea(double x,double y);

}

public class Circle implements Shape {
    /**
     * 获取周长
     *
     * @param x 半径
     * @param y 空
     * @return
     */
    @Override
    public double getPerimeter(double x, double y) {
        return 2 * Math.PI * x;
    }

    /**
     * 获取面积
     *
     * @param x 半径
     * @param y 空
     * @return
     */
    @Override
    public double getArea(double x, double y) {
        return Math.PI * Math.pow(x, 2);
    }
}


/**
 * 矩形
 */
public class Rect implements Shape{
    /**
     * 周长
     * @param x 长
     * @param y 宽
     * @return
     */
    @Override
    public double getPerimeter(double x, double y) {
        return (x+y)*2;
    }

    /**
     * 面积
     * @param x 长
     * @param y 宽
     * @return
     */
    @Override
    public double getArea(double x, double y) {
        return x*y;
    }
}

 

 

    @Test
    fun test2(){
        var circle:Shape=Circle()
        println(circle.getPerimeter(1.0,0.0))
        println(circle.getArea(1.0,0.0))

        var rect:Shape=Rect()
        println(rect.getPerimeter(1.0,2.0))
        println(rect.getArea(1.0,2.0))
    }

 

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

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y