任何人都可以找到为什么这个课程不会运行?我犯了一些错误或其他错误,但我似乎无法看到错误。我实例化一个对象并使用我认为正确的符号来打印应该是它的区域,以返回我想要的值。对象中的信息应评估为~7.2。
public class TrapApx
{
private double x1;
private double x2;
private double distance;
private double numberOfSections;
private double changeInX;
private double area = 0;
public TrapApx(double firstX, double secondX, double numOfSec)
{
x1 = firstX;
x2 = secondX;
numberOfSections = numOfSec;
}
public double distance()
{
return distance = x2 - x1;
}
public double changeX()
{
return changeInX = distance / numberOfSections;
}
public double funcX(double x)
{
return Math.sqrt(x-1);
}
public double areaApx()
{
for(double x = x1; x < x2; x += changeInX)
{
area += (funcX(x) + funcX(x + changeInX))/2 * changeInX;
}
return area;
}
}
public class TrapApxTest
{
public static void main(String []args)
{
TrapApx one = new TrapApx(1, 6, 5);
System.out.println(one.areaApx());
}
}
我尝试查看某些内容是否与我的某个变量或其突变无关,因此我创建了这个没有对象的静态类,并在程序上对其进行了测试,并返回了正确的答案。
public class tester
{
public static double funcX(double x)
{
return Math.sqrt(x-1);
}
public static void main(String []args)
{
double x1 = 1,
x2 = 6,
distance = x2 - x1,
numberOfSections = 5,
changeInX = distance / numberOfSections,
area = 0;
for(double x = x1; x < x2; x += changeInX)
{
area += (funcX(x) + funcX(x + changeInX))/2 * changeInX;
}
System.out.println(area);
}
}
谢谢你的帮助,伙计们。
答案 0 :(得分:1)
问题是您从未运行distance()
方法,因此distance
字段保持为零。给一个字段和一个方法命名是一个非常可怕的想法。