java算球体积的代码_java - 球体体积法不起作用 - 堆栈内存溢出

为了使球体体积法起作用,我尝试了许多不同的计算方法。

我的Sphere类是从Circle扩展的,以从圆中获取面积,并实现了Shape3D接口,该接口允许我使用体积方法。

但是,我已经为我的方法尝试了所有这些不同的公式,没有任何东西可以使我准确地得到一个球体。 它总是彻底关闭。

最接近的那个是(4 * 22 * radius * radius * radius)/(3 * 7); 但它仍然关闭。

//return (4/3) * super.area() * radius;

//return (Double)((4*22*getRadius()*getRadius()*getRadius() )/(3*7));

//return (4*22*radius * radius * radius )/(3*7);

//return ( (4/3) * (Math.pow(getRadius(), 3) ) / (Math.PI) );

//return (getRadius() * getRadius() * getRadius() ) * (Math.PI) * (4/3);

//return ( super.area() * getRadius() ) * (4/3);

我将为我的Shape抽象类,Circle类和Sphere类以及Shape3D接口附加代码。

也许我忽略了一些显而易见的事情。 当我设置半径并获得它时,半径返回正常值。 因此,我不确定为什么其中每一个都完全关闭。

public class Main {

public static void main(String[] args) {

System.out.println(volume());

}

public static double volume() {

double vol;

double x = 4/3;

double y = Math.pow(30.0, 3);

double z = Math.PI;

vol = y * z * x;

return vol;

//return (4/3) * super.area() * radius;

//return (Double)((4*22*getRadius()*getRadius()*getRadius() )/(3*7));

//return (4*22*radius * radius * radius )/(3*7);

//return ( (4/3) * (Math.pow(getRadius(), 3) ) / (Math.PI) );

//return (getRadius() * getRadius() * getRadius() ) * (Math.PI) * (4/3);

//return ( super.area() * getRadius() ) * (4/3);

}// end sphere volume

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java实现一个模型、两个视图和两个控制器的功能软件,即采用MVC模式或者说是观察者模式,本程序通过输入球体半径,显示球体形状,面积体积等 Sphere.java package Model; import java.util.Observable; public class Sphere extends Observable { private double radius;//球体半径 private double area;//球体面积 private double volume;//球体体积 public Sphere() { radius=100d; area=4*Math.PI*Math.pow(radius, 2); volume=4*Math.PI*Math.pow(radius, 3)/3; } public double getRadius() { return radius; } public double getArea() { return area; } public double getVolume() { return volume; } public void setRadius(double radius) { this.radius = radius; this.area = 4*Math.PI*Math.pow(radius, 2); this.volume=4*Math.PI*Math.pow(radius, 3)/3; this.setChanged(); this.notifyObservers(); } } textView.java package View; import java.util.Observer; import java.util.Observable; import java.text.NumberFormat; import javax.swing.*; import Controller.TextController; import Model.Sphere; import java.awt.*; import java.awt.event.*; public class TextView extends JPanel implements Observer { private JLabel radiusLab;//提示用户输入球体半径 private JTextField radiusTextField;//接受用户输入球体半径 //private JLabel radiusRang; private JLabel areaLab;//显示球体面积 private JTextField areaTextField;//显示输入球体半径对应的面积 private JLabel volumeLab;//显示球体体积 private JTextField volumeTextField;//显示输入球体半径对应的体积 public TextView() { try { Init(); } catch(Exception e) { e.printStackTrace(); } } private void Init() throws Exception { radiusLab=new JLabel("球体半径"); radiusLab.setForeground(new Color(0,165,168)); //radiusRang=new JLabel("[0-200]"); radiusTextField = new JTextField(12); radiusTextField.setForeground(new Color(223,100,158)); radiusTextField.setBackground(new Color(210,204,230)); areaLab=new JLabel("球体面积"); areaLab.setForeground(new Color(0,165,168)); areaTextField = new JTextField(12); areaTextField.setBackground(new Color(193,219,219)); areaTextField.setEditable(fal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值