在几何图形中,分为平面图和立体图,所有的平面图都能计算周长和面积,所有的立体图都能计算表面积和体积,定义Shape2D和Shape3D接口,分别描述平面图和立体图的行为:在Shape2D中定义计算周长computePerimeter()和面积computeArea()的方法,Shape3D继承Shape2D接口,新增计算体积的方法computeVolumn(),定义Circle圆类和Sphere球类,分别实现Shape2D和Shape3D接口。
提示:(Math.PI是圆周率,使用前需导入java.util.*包)
圆的周长公式:2*Math.PI*半径
圆的面积公式:Math.PI*半径*半径 球的表面积公式:4*Math.PI*半径*半径
球的体积公式:4*Math.PI*半径*半径*半径/3
 在java中实现

解决方案 »

  1.   


    interface Shape2D{
      public double  computePerimeter();//计算周长
      public double  computeArea();//计算面积
    }interface Shape3D extends Shape2D{
      public double computeBolumn();//计算体积
    }class Circle implements Shape2D{
      private double r;
      private static final double PI=Math.PI;  public Circle(double r){
         this.r = r;
    }
     
     public double  computePerimeter(){//计算周长
        return 2*PI*r;
       }
      public double  computeArea(){//计算面积
        return r*r*PI;
     }
    }class Sphere implements Shape3D{
      private double r;
      private static final double PI=Math.PI;  public double  computeArea(){//计算表面积
        return 4*r*r*PI;
     }
     public double computeBolumn(){//计算体积
       return 4*r*r*r*PI/3;
      }
    }
    public class TestClass{
      public static void main(String [] args){
        Circle cir = new Circle(2.0);//创建一个半径为2.0的圆实例
          System.out.println("圆面积:"+cir.computeArea());
         System.out.println("圆周长:"+cir.computePerimeter());
         
        Sphere sh = new Sphere(2.0);//创建一个半径为2的球体
         System.out.println("球表面积:"+cir.computeArea());
         System.out.println("球体积:"+cir.computeBolumn());
      }
    }直接写的,没有在eclipse中运行。
      

  2.   


    interface Shape2D {
    public double computePerimeter();// 计算周长 public double computeArea();// 计算面积
    }interface Shape3D extends Shape2D {
    public double computeBolumn();// 计算体积
    }class Circle implements Shape2D {
    private double r; private static final double PI = Math.PI; public Circle(double r) {
    this.r = r;
    } public double computePerimeter() {// 计算周长
    return 2 * PI * r;
    } public double computeArea() {// 计算面积
    return r * r * PI;
    }
    }class Sphere implements Shape3D {
    private double r; private static final double PI = Math.PI; public double computePerimeter() {
    return 0;
    }; public Sphere(double r) {
    this.r = r;
    } public double computeArea() {// 计算表面积
    return 4 * r * r * PI;
    } public double computeBolumn() {// 计算体积
    return 4 * r * r * r * PI / 3;
    }
    }public class TestClass {
    public static void main(String[] args) {
    Circle cir = new Circle(2.0);// 创建一个半径为2.0的圆实例
    System.out.println("圆面积:" + cir.computeArea());
    System.out.println("圆周长:" + cir.computePerimeter()); Sphere sh = new Sphere(2.0);// 创建一个半径为2的球体
    System.out.println("球表面积:" + sh.computeArea());
    System.out.println("球体积:" + sh.computeBolumn());
    }
    }
    修改了6楼的几个小错误
      

  3.   

    7楼的程序应该能满足你的要求了!hehe