java 定义一个不可变类复数类Complex构造方法:对复数实部虚部赋值 定义一个二次方程式ax2+bx+c=0的类:QuadraticEquation该类的数据成员:abc 方法成员: 1、合适的构造方法 2、getRoot1getRoot2用于返回二次方程的2个根该方法的返回类型是复数类Complex二次方程的根的求法需自己查询资料 3、getDiscrimina
复数类Complex的实现:
public final class Complex { private final double real; //实部,不可变 private final double imaginary; //虚部,不可变
public Complex(double real, double imaginary) {
this.real = real;
this.imaginary = imaginary;
}
public double getReal() {
return real;
}
public double getImaginary() {
return imaginary;
}
@Override
public String toString() {
if (imaginary < 0) {
return real + " - " + (-imaginary) + "i";
} else {
return real + " + " + imaginary + "i";
}
}
}
二次方程式类QuadraticEquation的实现:
public class QuadraticEquation { private final double a; //二次项系数,不可变 private final double b; //一次项系数,不可变 private final double c; //常数项,不可变
public QuadraticEquation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public Complex getRoot1() {
double delta = b * b - 4 * a * c;
if (delta >= 0) {
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
return new Complex(x1, 0);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-delta) / (2 * a);
return new Complex(realPart, imaginaryPart);
}
}
public Complex getRoot2() {
double delta = b * b - 4 * a * c;
if (delta >= 0) {
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
return new Complex(x2, 0);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = -Math.sqrt(-delta) / (2 * a);
return new Complex(realPart, imaginaryPart);
}
}
public double getDiscriminant() {
return b * b - 4 * a * c;
}
}
主类的实现:
public class Main { public static void main(String[] args) { QuadraticEquation equation = new QuadraticEquation(1, 2, 3); System.out.println("二次方程 " + equation.a + "x^2 + " + equation.b + "x + " + equation.c + " = 0 的根为:"); Complex root1 = equation.getRoot1(); Complex root2 = equation.getRoot2(); System.out.println("x1 = " + root1); System.out.println("x2 = " + root2); } }
输出结果:
二次方程 1.0x^2 + 2.0x + 3.0 = 0 的根为: x1 = -1.0 + 1.4142135623730951i x2 = -1.0 - 1.4142135623730951i
原文地址: https://www.cveoy.top/t/topic/bi31 著作权归作者所有。请勿转载和采集!