高分悬赏Java语言如何编写程序去计算一个圆锥的表面积和体积呢,要具体的代码和注释
梳理下圆锥的表面积和体积公式:
圆锥体的表面积=πRL+πR^2
圆锥的体积=1/3*πR^2h
h:圆锥体的高
R为圆锥体底面圆的半径
L为圆锥的母线长
把所有的变量变成输入参数后,按照这个公式写输出变量值就可以了。
public interface Shape {
/**
* 获取面积
* @return
*/
public double getArea();
/**
* 获取体积
* @return
*/
public double getVolume();
}
实现类
public class Cone implements Shape {
private double r; //圆锥底部圆形半径
private double h; //圆锥的高
private double l; //圆锥斜面母线
public Cone(double r, double h) {
this.r = r;
this.h = h;
// l*l = h*h + r*r (l:母线长,r:底面半径)
this.l = Math.sqrt(h*h + r*r);
}
/**
* 获取表面积
* @return
*/
@Override
public double getArea() {
//S = PI*r*l(侧面) + PI*r*r(地面圆)
return Math.PI*r*(r+l);
}
/**
* 获取体积
* @return
*/
@Override
public double getVolume() {
// S*H/3
return Math.PI*r*r*h/3;
}
public static void main(String[] args) {
Shape shape = new Cone(3,3);
System.out.println(shape.getArea());
System.out.println(shape.getVolume());
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
}
}
求分蛤,如有不懂再联系我。
做一个圆锥类Circular,一个测试类Test来做调用圆锥类。代码如下:
圆锥类Circular
package circular;
public class Circular {
double radius;// 圆锥底部半径
double height;// 圆锥高度
public Circular() {// 无参构造方法
this.radius = 0;// 默认半径初始值为0
this.height = 0;// 默认高度初始值为0
}
public Circular(double radius, double height) {// 带参构造方法
this.radius = radius;// 把参数传给半径
this.height = height;// 把参数传给高度
}
public double getArea() {// 计算圆表面积
if (radius <= 0 || height <= 0)
return 0;// 防止输入负数
return 3.14 * radius * radius + 3.14 * radius * Math.sqrt(radius * radius + height * height);// 返回面积
}
public double getBottomArea() {// 计算圆锥底面积
if (radius <= 0)
return 0;// 防止输入负数
return 3.14 * radius * radius;//返回圆锥底面积
}
public double getVolume() {//计算圆锥体积
if(height<=0)return 0;// 防止输入负数
double area = this.getBottomArea();//得到底面积
return area * height/3;//返回圆锥体积
}
public double getRadius() {// 获得半径
return radius;
}
public void setRadius(double radius) {// 设置半径
this.radius = radius;
}
public double getHeight() {// 获得高度
return height;
}
public void setHeight(double height) {// 设置高度
this.height = height;
}
}
测试类Test
package circular;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Circular circular1 = new Circular();//新建一个无参对象
System.out.println("圆锥1表面积:"+circular1.getArea());
System.out.println("圆锥1体积:"+circular1.getVolume());
Circular circular2 = new Circular(10,10);//新建一个带参对象
System.out.printf("圆锥2表面积:%.2f\n",circular2.getArea());//控制输出为两位小数
System.out.printf("圆锥2体积:%.2f\n",circular2.getVolume());
Circular circular3 = new Circular(-10,-10);//新建一个错误对象
System.out.printf("圆锥3表面积:%.2f\n",circular3.getArea());//控制输出为两位小数
System.out.printf("圆锥3体积:%.2f\n",circular3.getVolume());
}
}
测试结果如下: