在几何图形中,分为平面图和立体图,所有的平面图都能计算周长和面积,所有的立体图都能计算表面积和体积,定义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中实现
提示:(Math.PI是圆周率,使用前需导入java.util.*包)
圆的周长公式:2*Math.PI*半径
圆的面积公式:Math.PI*半径*半径 球的表面积公式:4*Math.PI*半径*半径
球的体积公式:4*Math.PI*半径*半径*半径/3
在java中实现
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中运行。
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楼的几个小错误