Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图做一个简单的计算,结果是不正确的_Java_Overloading - Fatal编程技术网

Java 试图做一个简单的计算,结果是不正确的

Java 试图做一个简单的计算,结果是不正确的,java,overloading,Java,Overloading,任务是“编写一个类,该类有三个重载的静态方法,用于计算圆、矩形和圆柱体的面积。”我在圆柱体方面遇到了问题。当计算圆的面积时,它会识别pi,那么为什么圆柱体不能呢 您的两种方法区域(float,double)和区域(double,double)正在混淆。总的来说,他们的签名非常接近,我不推荐这样做。例如,没有逻辑上的原因,为什么圆的半径必须表示为double,但圆柱体的半径仅要求达到float的精度 保存圆柱体半径的变量类型是什么?如果要调用“圆柱体”方法,则半径必须float而不是double

任务是“编写一个类,该类有三个重载的静态方法,用于计算圆、矩形和圆柱体的面积。”我在圆柱体方面遇到了问题。当计算圆的面积时,它会识别pi,那么为什么圆柱体不能呢


您的两种方法
区域(float,double)
区域(double,double)
正在混淆。总的来说,他们的签名非常接近,我不推荐这样做。例如,没有逻辑上的原因,为什么圆的半径必须表示为
double
,但圆柱体的半径仅要求达到
float
的精度

保存圆柱体半径的变量类型是什么?如果要调用“圆柱体”方法,则半径必须
float
而不是
double


(正如我在评论中提到的,你的圆柱体程序是计算体积,而不是面积。你说的三维物体的“面积”到底是什么意思?表面积?包括圆柱体的“末端”?

与你的问题没有直接关系,但是你用在气缸箱上的公式给出了气缸的体积。在第三种方法中使用
float
,只是为了区别于第二种方法,这是非常糟糕的。给他们起不同的、更有意义的名字。重载方法名是一个不好的用法。我同意“不好”(我会在代码审查中拒绝),但根据OP,赋值要求使用重载。因此(如果准确地报告给我们),要求似乎是区分两个同名的方法,每个方法都需要两个浮点参数。