如何用一个变量来实现两复数的实部相加相减
,以及虚部的相加相减
import java.math.BigDecimal;
public class ComplexNumber {
private final BigDecimal realPart;
private final BigDecimal imaginaryPart;
public ComplexNumber(BigDecimal realPart, BigDecimal imaginaryPart) {
this.realPart = realPart;
this.imaginaryPart = imaginaryPart;
}
public ComplexNumber(double realPart, double imaginaryPart) {
this(BigDecimal.valueOf(realPart), BigDecimal.valueOf(imaginaryPart));
}
public ComplexNumber(int realPart, int imaginaryPart) {
this(BigDecimal.valueOf(realPart), BigDecimal.valueOf(imaginaryPart));
}
public ComplexNumber add(ComplexNumber val) {
return new ComplexNumber(realPart.add(val.realPart), imaginaryPart.add(val.imaginaryPart));
}
public BigDecimal getRealPart() {
return realPart;
}
public BigDecimal getImaginaryPart() {
return imaginaryPart;
}
@Override
public String toString() {
if (realPart == BigDecimal.ZERO && imaginaryPart == BigDecimal.ZERO) {
return "0";
}
if (realPart != BigDecimal.ZERO && imaginaryPart != BigDecimal.ZERO) {
return realPart + " + " + imaginaryPart + "i";
}
return realPart == BigDecimal.ZERO ? imaginaryPart + "i" : String.valueOf(realPart);
}
public static void main(String[] args) {
ComplexNumber x1 = new ComplexNumber(1, 2);
ComplexNumber x2 = new ComplexNumber(3, 4);
ComplexNumber x3 = x1.add(x2);
System.out.println(x3);
}
}