复数类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

java 定义一个不可变类复数类Complex构造方法:对复数实部虚部赋值 定义一个二次方程式ax2+bx+c=0的类:QuadraticEquation该类的数据成员:abc 方法成员: 1、合适的构造方法 2、getRoot1getRoot2用于返回二次方程的2个根该方法的返回类型是复数类Complex二次方程的根的求法需自己查询资料 3、getDiscrimina

原文地址: https://www.cveoy.top/t/topic/bi31 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录