13.17
Complex 类
class Complex {
private double a; //实部
private double b; //虚部
public Complex() {
this.a = 0;
this.b = 0;
}
public Complex(double a) {
this.a = a;
this.b = 0;
}
public Complex(double a, double b) {
this.a = a;
this.b = b;
}
public double getRealPart() {
return this.a;
}
public double getImaginaryPart() {
return this.b;
}
public Complex add(Complex c) {
return new Complex(a + c.a, b + c.b);
}
public Complex substract(Complex c) {
return new Complex(a-c.a, b - c.b);
}
public Complex multiple(Complex c) {
return new Complex(a * c.a - b * c.b, b * c.a + a * c.b);
}
public Complex divide(Complex c) { //可以考虑分母为0的情况
double x, y;
x = (a * c.a + b * c.b) / (c.a * c.a + c.b * c.b);
y = (b * c.a - a * c.b) / (c.a * c.a + c.b * c.b);
return new Complex(x, y);
}
public double abs() {
return Math.sqrt(a * a + b * b);
}
@Override
public String toString() {
return ""+ getRealPart() + " + " + getImaginaryPart() + "i";
}
}
测试
public class Test13_17 {
public static void main(String[] args) {
Complex a = new Complex(3.5, 5.5);
Complex b = new Complex(-3.5, 1);
System.out.println(a.add(b).toString());
System.out.println(a.substract(b).toString());
System.out.println(a.multiple(b));
System.out.println(a.divide(b));
System.out.println(a.abs());
}
}
结果:
0.0 + 6.5i
7.0 + 4.5i
-17.75 + -15.75i
-0.5094339622641509 + -1.7169811320754718i
6.519202405202649