问题描述
public class Equation {
public static void quadEquation(double a,double b,double c) {
double solution1 = (-b + (Math.pow(b,2)-(4*a*c))/(2 * a));
double solution2 = (-b - (Math.pow(b,2)-(4*a*c))/(2 * a));
}
}
我必须通过调用不同的班级(测试人员)来打印 solution1 和 soltion2 。
在这种情况下,如何在测试仪中称呼它们?
作业分配!这只是我的家庭作业的一部分,所以你们可以自由地帮助这一工作
我解决了!谢谢你们的帮助我:)
解决方法
这是您在另一个类中调用static void
方法的方式。
==文件Exercise / Equation.java ==
package exercise;
public class Equation {
public static void quadEquation(double a,double b,double c) {
double solution1 = (-b + (Math.pow(b,2)-(4*a*c))/(2 * a));
double solution2 = (-b - (Math.pow(b,2)-(4*a*c))/(2 * a));
// If you want to print the solutions,add some print
// statements here!
}
}
==文件OtherClass.java ==
import exercise.Equation;
public class OtherClass {
public static void main(String[] args) {
Equation.quadEquation(1.0,2.0,3.0); // calls the method in Equation
}
}
您应该能够从命令行如下编译并运行以上代码。
$ # change directory to directory containing "OtherClass.java"
$ javac -cp . exercise/Equation.java OtherClass.java
$ java -cp . OtherClass
关键是:
-
如果要在另一个类中使用
Equation
,最好在Java包中声明该类。 -
然后,您需要
import
Equation
进入另一个类。 (如果两个类都在同一包中,则没有必要。) -
很显然,
void
方法无法返回任何内容。因此,如果您希望从quadEquation
方法中获得一些输出,则该方法需要自行打印。
请注意,上一点中描述的方法通常 是一种浇注设计选择。您通常不想这样混合代码的“问题”。您通常希望将计算和输出结果视为单独的问题。例如,您可能希望您的quadEquation
方法在将解决方案输出到其他地方...或根本不输出的情况下可用。
其他事项:
-
如果应该这样做可以找到二次方程式的根,则说明您未正确编写公式。那里应该有一个“平方根”。参见https://en.wikipedia.org/wiki/Quadratic_formula。
-
您还需要考虑解为虚数的情况。 (除非被告知要忽略它...)
-
我看到您评论说另一个类是驱动程序。这可能使上面的示例无效。您将必须阅读驱动程序类的代码(或该类的说明),然后才能弄清楚它将如何调用您的类。很有可能是您的老师为您解决了给您的
quadEquation
打电话的问题。