我无法弄清楚我在这里做错了什么.我刚刚写了一个类似的代码,运行正常.一旦我掌握了如何使用扫描仪类.我正在研究一个程序,它采用直角三角形的高度和底部,然后计算周长,面积和斜边.但它为每个方法返回0.0并且我无法弄清楚我是否缺少某种语法或者我是否真的搞乱了我的计算.有人能指出我错误的正确方向吗?
public class RightTriangle {
private double height;
private double base;
private final double hypotenuse = Math.sqrt(Math.pow(height, 2) + Math.pow(base, 2));
public RightTriangle(double triHeight, double triBase)
{
triHeight = height;
triBase = base;
}
public double getPerimeter()
{
double perimeter = height + base + hypotenuse;
return perimeter;
}
public double getArea()
{
double area = (height + base) / 2;
return area;
}
public double getHypotenuse()
{
return hypotenuse;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要方法:
import java.util.Scanner;
public class CalculateTriangle
{
public static void main(String[] args)
{
Scanner triangleHeight = new Scanner(System.in);
System.out.print("Enter Triangle Height: ");
double height = triangleHeight.nextDouble();
Scanner triangleBase = new Scanner(System.in);
System.out.print("Enter Triangle Base: ");
double base = triangleBase.nextDouble();
RightTriangle newTriangle = new RightTriangle(height, base);
newTriangle.getPerimeter();
double perimeter = newTriangle.getPerimeter();
newTriangle.getArea();
double area = newTriangle.getArea();
newTriangle.getHypotenuse();
double hypotenuse = newTriangle.getHypotenuse();
System.out.println(perimeter);
System.out.println(area);
System.out.println(hypotenuse);
}
}
Run Code Online (Sandbox Code Playgroud)
你的代码:
public RightTriangle(double triHeight, double triBase)
{
triHeight = height;
triBase = base;
}
Run Code Online (Sandbox Code Playgroud)
应该:
public RightTriangle(double triHeight, double triBase)
{
height = triHeight;
base = triBase;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |