Java编写一个类,该类分装了一个一元二次方程共有的属性和功能,即该类有刻画方程系数的三个成员变量以及计算实根的方法。要求:该类的所以对象共享常数项。
时间: 2024-10-14 09:12:11 浏览: 36
在Java中,我们可以创建一个名为`QuadraticEquation`的类,用于封装一元二次方程的相关信息。这个类将包含三个私有变量来表示二次函数的系数a、b和c,其中c作为公共常数项,因为所有一元二次方程的常数项都是固定的。同时,我们将提供一个公共方法`calculateRoots()`来计算解。
```java
public class QuadraticEquation {
private double a; // 幂次项系数
private double b; // 一次项系数
// 公共常数项
public static final double CONSTANT_TERM = 0;
// 构造函数,设置初始值
public QuadraticEquation(double a, double b) {
this.a = a;
this.b = b;
}
// 计算一元二次方程的两个实根
public Complex[] calculateRoots() {
double discriminant = Math.pow(b, 2) - 4 * a * CONSTANT_TERM;
if (discriminant >= 0) {
double root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
double root2 = (-b - Math.sqrt(discriminant)) / (2 * a);
return new Complex[]{new Complex(root1), new Complex(root2)};
} else {
// 当判别式小于零时,有两个复数根
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-discriminant) / (2 * a);
return new Complex[]{new Complex(realPart, imaginaryPart), new Complex(realPart, -imaginaryPart)};
}
}
// 使用Complex类表示复数,省略其定义
class Complex {
double real, imag;
// ...Complex类其他部分省略...
}
}
```
阅读全文