java编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。要求:该类的所有对象共享常数项。
时间: 2024-04-30 10:19:59 浏览: 115
jiefangcheng.rar_一元二次方程
下面是一个Java类的示例,它实现了封装一元二次方程的属性和方法:
```java
public class QuadraticEquation {
private double a;
private double b;
private double c;
private static double delta;
public QuadraticEquation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
delta = b * b - 4 * a * c;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
delta = b * b - 4 * a * c;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
delta = b * b - 4 * a * c;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
delta = b * b - 4 * a * c;
}
public static double getDelta() {
return delta;
}
public double getRoot1() {
return (-b + Math.sqrt(delta)) / (2 * a);
}
public double getRoot2() {
return (-b - Math.sqrt(delta)) / (2 * a);
}
}
```
该类有四个成员变量:a、b、c 和 delta,分别表示一元二次方程的三个系数和判别式。其中,delta 是一个静态变量,因为它对于所有对象都是相同的。
该类的构造方法接受三个参数,分别用于初始化 a、b 和 c。在构造方法中计算 delta 的值。
类中还有一些 getter 和 setter 方法,用于获取和设置类的成员变量。
最后,该类还有两个方法 getRoot1 和 getRoot2,用于计算一元二次方程的两个实根。这些方法使用公式 $x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$ 计算实根。
使用该类的示例如下:
```java
QuadraticEquation equation = new QuadraticEquation(1, -3, 2);
double root1 = equation.getRoot1();
double root2 = equation.getRoot2();
double delta = QuadraticEquation.getDelta();
System.out.println("Roots: " + root1 + ", " + root2);
System.out.println("Delta: " + delta);
```
这将创建一个一元二次方程 $x^2 - 3x + 2 = 0$ 的对象,并计算其两个实根和判别式。输出将是:
```
Roots: 2.0, 1.0
Delta: 1.0
```
阅读全文