用Java编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。要求:该类的所有对象共享常数项。
时间: 2023-06-19 12:04:04 浏览: 165
以下是一个Java类的实现,满足你的要求:
```java
public class QuadraticEquation {
private static double constant; // 所有对象共享常数项
private double a;
private double b;
private double c;
public QuadraticEquation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
constant = c / a; // 计算常数项
}
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
public double getConstant() {
return constant;
}
public double getDiscriminant() {
return b * b - 4 * a * c;
}
public double getRoot1() {
if (getDiscriminant() < 0) {
return 0; // 如果无实根,返回0
}
return (-b + Math.sqrt(getDiscriminant())) / (2 * a);
}
public double getRoot2() {
if (getDiscriminant() < 0) {
return 0; // 如果无实根,返回0
}
return (-b - Math.sqrt(getDiscriminant())) / (2 * a);
}
}
```
上述代码中,`constant` 是一个静态变量,表示所有对象共享的常数项。在构造函数中,计算常数项的值,并将其赋给静态变量 `constant`。`getDiscriminant()` 方法用于计算判别式,`getRoot1()` 和 `getRoot2()` 方法分别计算一元二次方程的两个实根。如果没有实根,则返回0。
阅读全文