6-2 从抽象类shape类扩展出子类

6-2 从抽象类shape类扩展出子类,第1张

请从下列的抽象类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;
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/905894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存