天天看點

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;

}

}