编写一个复数类,具有实部虚部成员变量,可以完成加减乘活得实部虚部等方法,并编写一个主类对其进行调试

如题所述

第1个回答  2013-06-16
public class ComplexTest {

public static void main(String args[]) {

Complex c1 = new Complex();
c1.setReal(11);
c1.setImaginary(22);

Complex c2 = new Complex(22, 33);

Complex add = c1.add(c2);
System.out.println("11 + 22i + 22 + 33i = " + add.toString());

Complex subtract = c2.subtract(c1);
System.out.println("22 + 33i - (11 + 22i) = " + subtract.toString());

Complex c3 = c1.multiply(c2);
System.out.println("(22 + 33i) * (11 + 22i) = " + c3.toString());
}

}

class Complex {

private double real;

private double imaginary;

public Complex() {

}

public Complex(double realNum, double imaginaryNum) {
this.real = realNum;
this.imaginary = imaginaryNum;
}

// (a+bi) + (c+di) = (a+b) + (c+d)i
public Complex add(Complex complexNum2) {

double newRealPart = this.real + complexNum2.getReal();
double newImgPart = this.imaginary + complexNum2.getImaginary();

return new Complex(newRealPart, newImgPart);
}

// (a+bi) - (c+di) = (a-c) + (b-d)i
public Complex subtract(Complex complexNum2) {
double newRealPart = this.real - complexNum2.getReal();
double newImgPart = this.imaginary - complexNum2.getImaginary();

return new Complex(newRealPart, newImgPart);
}

//(a+bi) * (c+di)=(ac-bd) + (bc+ad)i
public Complex multiply(Complex num2) {
double newRealPart = this.real * num2.getReal() - this.imaginary * num2.getImaginary();
double newImgPart = this.imaginary * num2.getReal() - this.real * num2.getImaginary();

return new Complex(newRealPart, newImgPart);
}

public double getImaginary() {
return imaginary;
}

public void setImaginary(double imaginary) {
this.imaginary = imaginary;
}

public double getReal() {
return real;
}

public void setReal(double real) {
this.real = real;
}

// public boolean equals(Complex c2) {
// return this.real == c2.getReal() && this.imaginary == c2.getImaginary();
// }
//
public String toString() {
return real + "+" + imaginary + "i";
}

}

-----------------------测试
11 + 22i + 22 + 33i = 33.0+55.0i
22 + 33i - (11 + 22i) = 11.0+11.0i
(22 + 33i) * (11 + 22i) = -484.0+121.0i