作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让用户输入三角形的底边和高度,并用它们计算斜边。
我得到的错误是线程“main”java.lang.StackOverflowError中的异常
并指向我询问用户的第42行。
下面是实际代码:
public class RTTriangle {
private double base; // properties
private double height;
private double hypotenuse;
public RTTriangle() // Constructors
{
base = 2;
height = 0;
}
public RTTriangle(double BASE2, double HEIGHT2) // Constructors
{
base = BASE2;
height = HEIGHT2;
}
public void setBase(double BasE) // setters
{
base = BasE;
}
public void setHeight(double Height)
{
height = Height;
}
public double getBase() // getters
{
return base;
}
public double getHeight()
{
return height;
}
public double getHypotenuse(double x, double y)
{
hypotenuse = Math.sqrt(Math.pow(base, 2.0) + Math.pow(height, 2.0));
return hypotenuse = getHypotenuse(base, height);
}
public double getArea()
{
double area;
area = base * height;
return area;
}
public double getPerimeter()
{
double Perimeter;
Perimeter = height + base + this.getHypotenuse();
return Perimeter;
}
}
我试图搞乱它,但我似乎仍然无法工作。这就是我将其调用到我的其他类(class)的方式
import java.util.Scanner;
public class RTTriangleDemo {
public static void main(String[] args)
{
double base;
double height;
Scanner SCAN = new Scanner(System.in);
RTTriangle TRI1 = new RTTriangle();
RTTriangle TRI2 = new RTTriangle();
System.out.print("Enter the base of the Triangle: " );
base = SCAN.nextDouble();
System.out.print("Enter the length of the Triangle: " );
height = SCAN.nextDouble();
System.out.print("The hypotenuse is: " + TRI1.getHypotenuse(base, height));
如果有人能帮助我,我将非常感激。
最佳答案
通过以下方法:
public double getHypotenuse(double x, double y)
{
hypotenuse = Math.sqrt(Math.pow(base, 2.0) + Math.pow(height, 2.0));
return hypotenuse = getHypotenuse(base, height);
}
将最后一行更改为
return hypotenuse;
剩下的就是递归调用,您不需要它。它只会无限地调用自己,直到你用完堆栈空间,导致程序崩溃。
<小时/>与您的问题无关,但您有一个采用三角形底边和高度的构造函数。我会考虑使用它,这样您就不必将这些值传递给 hypotenuse
方法。
关于java - 如何使用在 Scanner 类的另一个类中创建的方法来向该方法提供数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46962649/
我知道 Jobs 可以通过 flink 或 flink.bat 提交给 JobManager。我想知道Flink有没有提供Java API给JobManager提交作业? 最佳答案 是的。根据您要连接
我已经将 GCM 的演示代码应用于 appache 服务器的服务器端和 android 设备的客户端,并且运行良好;但我需要在我的应用程序中激活此服务,如下所示:我在 SqlServer 上有一个数据
我需要将自定义 header 添加到 WebView 中加载的页面,但它不起作用, header 未设置: @Override public WebResourceResponse shouldInt
我是一名优秀的程序员,十分优秀!