【发布时间】:2015-12-09 22:09:53
【问题描述】:
这个程序的目的是打印 解的数量和二次函数的解, 由用户输入。
这里的问题是我得到了私有变量的错误, 为什么是这样?同样对于我的构造函数,它指出我的变量无法解析,即使 它们是在 main 方法中建立的。最后我的变量会传给main方法或者“toString”方法使用 在 main 方法中。
这是一个学校作业,我的教授要求我使用“toString”方法以及私有变量。对于任何格式错误和大问题,我提前道歉,因为我是新手 到这个网站。
import java.util.Scanner
public class QuadraticSolver
{
private static Scanner in;
public static void main(String[]args)
{
QuadraticSolver qs = new QuadraticSolver();
in = new Scanner(System.in);
private double a;
private double b;
private double c;
System.out.println("Enter coefficients for quadratic function. ");
a = in.nextDouble();
b = in.nextDouble();
c = in.nextDouble();
qs.getRoot1(a,b,c);
qs.getRoot2(a,b,c);
qs.numOfSolutions(a,b,c);
System.out.println("Your quadratic function is " + a + "x^2 + " + b + "x + " + c);
System.out.println(qs.toString());
}
public QuadraticSolver()
{
a = 0;
b = 0;
c = 0;
}
public double getRoot1(double a,double b,double c)
{
private double root1;
root1 = (-b + Math.sqrt(Math.pow(b,2) - 4*a*c)) / (2*a);
return root1;
}
public double getRoot2(double a,double b,double c)
{
private double root2;
root2 = (-b + Math.sqrt(Math.pow(b,2) - 4*a*c)) / (2*a);
return root2;
}
public int numOfSolutions(double a,double b,double c)
{
private int sol = 0;
private double d;
d = Math.pow(b,2) - 4*a*c;
if(d > 0)
{
sol = 2;
}
else if(d == 0)
{
sol = 1;
}
else if(d < 0)
{
sol = 0;
}
return sol;
}
public String toString()
{
return "There are(is) " + sol + " solution(s). x = " + root1 + " x = " + root2;
}
}
【问题讨论】:
-
让
getRoot1和getRoot2返回不同的值可能是个好主意。 -
这不会产生编译错误吗?如果是这样,请显示您收到的错误消息。
-
线程“main”java.lang.Error 中的异常:未解决的编译问题:a 无法解析为变量 b 无法解析为变量 c 无法解析为变量 sol 无法解析为变量 root1 无法解析为变量 root2 无法解析为 QuadraticSolver 处的变量。
(QuadraticSolver.java:44) 在 QuadraticSolver.main(QuadraticSolver.java:23) -
安德鲁:这个信息太重要了,不能被埋没在 cmets 中。我建议您将上面发布的信息通过editing the question 放入您的主要问题中,并指出哪一行是第 23 行。此外,对于以后的问题,请始终告诉我们任何和所有编译错误或异常,发布您的问题的完整信息。忽略它太重要了。
-
我错了,谢谢。