Java——Shape类

Description

定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数
定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类长方形类Rectangle继承自Square类,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类圆形类Circle继承自Shape,拥有半径属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()

在main函数中,分别构造三个子类的对象,并输出他们的周长、面积.

Input

正方形类的边长
长方形类的长宽
圆类的半径

Output

正方形的周长、面积
长方形的周长、面积
圆形的周长、面积

Sample Input

1
1 2
2

Sample Output

4.00 1.00
6.00 2.00
12.57 12.57

HINT

用System.out.printf("%.2f",d)进行格式化输出
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
         Scanner scan = new Scanner(System.in);      
         double length = scan.nextDouble();
         Square s = new Square(length);
         System.out.printf("%.2f ",s.getPerimeter());
         System.out.printf("%.2f\n",s.getArea());

         length = scan.nextDouble();
         double wide = scan.nextDouble();
         Rectangle r = new Rectangle(length,wide);
         System.out.printf("%.2f ",r.getPerimeter());
         System.out.printf("%.2f\n",r.getArea());

         double radius = scan.nextDouble();
         Circle c = new Circle(radius);
         System.out.printf("%.2f ",c.getPerimeter());
         System.out.printf("%.2f\n",c.getArea());

         scan.close(); 
    }
}
abstract class Shape{
    public abstract double getArea();

    public abstract double getPerimeter();

}

class Square extends Shape{

    private double length;

    public Square(double length)

    {

        this.length = length;

    }

    public double getArea()

    {

        return length*length;

    }

    public double getPerimeter()

    {

        return 4 * length;

    }

}

class Rectangle extends Square{

    private double length;

    private double wide;

    

    public Rectangle(double length,double wide)

    {

        super(length);

        this.length = length;

        this.wide = wide;

    }

    public double getArea()

    {

        return length*wide;

    }

    public double getPerimeter()

    {

        return (length+wide)*2;

    }

}

class Circle extends Shape{

    private double radius;

    

    public Circle(double radius)

    {

        this.radius = radius;

    }

    public double getArea()

    {

        return 3.1415926*radius*radius;

    }

    public double getPerimeter()

    {

        return 3.1415926*2*radius;

    }

}

猜你喜欢

转载自blog.csdn.net/Yolanda_Salvatore/article/details/82790426