请从下列的抽象类Shape类派生出子类Circle和Rectangle,Circle类中应包含初始化半径的构造方法,Rectangle类中应包含初始化长和宽的构造方法;具体如UML图所示。
主类从键盘输入圆形的半径值和矩形的长、宽值,创建对象,然后输出各自的面积和周长。保留4位小数。(注:圆周率用 Math.PI)。
裁判测试程序样例:
import java.util.Scanner; import java.text.DecimalFormat; /* 你提交的代码将被嵌入到这里 */ public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数 double r = input.nextDouble( ); Shape c = new Circle(r); System.out.println("圆的面积和周长分别为:"); System.out.println(d.format(c.getArea())); System.out.println(d.format(c.getPerimeter())); double w = input.nextDouble(); double h = input.nextDouble(); c = new Rectangle(w,h); System.out.println("矩形的面积和周长分别为:"); System.out.println(d.format(c.getArea())); System.out.println(d.format(c.getPerimeter())); input.close(); } } /* 请在这里填写答案:定义类(注:请把class前面的public去掉再提交)*/
输入样例:
在这里给出一组输入。例如:
3.1415926
2.1345
3
输出样例:
在这里给出相应的输出。例如:
圆的面积和周长分别为:
31.0063
19.7392
矩形的面积和周长分别为:
6.4035
10.269
代码长度限制
16 KB
时间限制
400 ms
内存限制
代码
abstract class Shape {
abstract double getArea();
abstract double getPerimeter();
}
class Rectangle extends Shape{
private double width;
private double height;
Rectangle (double w,double h){
this.width = w;
this.height = h;
}
double getArea(){
return width*height;
}
double getPerimeter(){
return width*2 + height*2;
}
}
class Circle extends Shape{
double radius;
Circle(double r){
this.radius = r;
}
double getArea(){
return Math.PI*radius*radius;
}
double getPerimeter(){
return Math.PI*2*radius;
}
}