天天看点

java shape类_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;

}

}