设计一个类,解ax²+bx+c=0,用Java语言编写
时间: 2024-10-13 20:10:33 浏览: 21
在Java中设计一个解二次方程`ax² + bx + c = 0`的类,通常我们会创建一个名为`QuadraticEquationSolver`的类,其中包含成员变量a、b和c,以及用于计算根的方法。这里是一个简单的示例:
```java
public class QuadraticEquationSolver {
private double a;
private double b;
private double c;
// 构造函数接收三个系数
public QuadraticEquationSolver(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 计算判别式(D = b² - 4ac)
private double discriminant() {
return Math.pow(b, 2) - 4 * a * c;
}
// 求解二次方程的两个可能根
public double[] solve() {
if (discriminant() >= 0) {
double root1 = (-b + Math.sqrt(discriminant())) / (2 * a);
double root2 = (-b - Math.sqrt(discriminant())) / (2 * a);
return new double[]{root1, root2};
} else if (discriminant() == 0) {
// 只有一个实数根
return new double[]{-b / (2 * a)};
} else {
// 无实数根,返回复数根
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-discriminant()) / (2 * a);
return new double[]{realPart, imaginaryPart};
}
}
// 主方法,用户可以直接实例化并求解方程
public static void main(String[] args) {
QuadraticEquationSolver solver = new QuadraticEquationSolver(1, -3, 2);
double[] roots = solver.solve();
System.out.println("Roots are: " + Arrays.toString(roots));
}
}
```
阅读全文