public class ComplexNumber //定义ComplexNumber 类
{
private double m_dRealPart; //定义实部
private double m_dImaginPart; //定义虚部
public ComplexNumber(double r, double i)
//定义类ComplexNumber的方法
{
this.m_dRealPart = r; //初始化实部
this.m_dImaginPart = i; //初始化虚部
}
public ComplexNumber Add(ComplexNumber c) //定义加法方法
{
ComplexNumber result = new ComplexNumber(this.m_dRealPart + c.m_dRealPart, this.m_dImaginPart + c.m_dImaginPart);
// 结果中:实部=实部+实部,虚部=虚部+虚部
return result; //返回结果为真
}
public ComplexNumber Minus(ComplexNumber c) //定义减法方法
{
ComplexNumber result = new ComplexNumber(this.m_dRealPart - c.m_dRealPart, this.m_dImaginPart - c.m_dImaginPart);
// 结果中:实部=实部-实部,虚部=虚部-虚部
return result;
}
public ComplexNumber Multi(ComplexNumber c) //定义乘法方法
{
double newReal = this.m_dRealPart*c.m_dRealPart - this.m_dImaginPart * c.m_dImaginPart;
//结果中:实部=实部×实部-虚部×虚部
double newImaginary = this.m_dRealPart*c.m_dImaginPart + this.m_dImaginPart * c.m_dRealPart;
// 虚部=实部×虚部+实部×虚部
ComplexNumber result = new ComplexNumber(newReal, newImaginary);
//用新的ComplexNumber存入结果
return result;
}
public ComplexNumber Divide(ComplexNumber c) //定义除法方法
{
ComplexNumber conjugate = new ComplexNumber(this.m_dRealPart, -this.m_dImaginPart);
ComplexNumber multiplication = conjugate.Multi(c); // 定义新方法,将复数实数化
multiplication.m_dRealPart /= this.m_dRealPart*this.m_dRealPart + this.m_dImaginPart * this.m_dImaginPart;
// 除法结果中的实部=被除数/( 除数中的实部平方+虚部平方 )
multiplication.m_dImaginPart /= this.m_dRealPart*this.m_dRealPart + this.m_dImaginPart * this.m_dImaginPart;
// 除法结果中的虚部=被除数/( 除数中的实部平方+虚部平方 )
return multiplication;
}
public String toString() // 显示结果
{
String show = this.m_dRealPart + " + " + this.m_dImaginPart + "i";
return show;
}
public static void main(String [ ] args) // 使用ComplexNumber 类
{
ComplexNumber a = new ComplexNumber (1,1);
ComplexNumber b = new ComplexNumber (1,1);
System.out.println((a.Add(b)).toString()); // 加
System.out.println((a.Minus(b)).toString()); // 减
System.out.println((a.Multi(b)).toString()); // 乘
System.out.println((a.Divide(b)).toString()); // 除
}
}
a=1+i , b=1+i 运行结果如下:
2.0+2.0i
0.0+0.0i
0.0+2.0i
1.0+0.0i
运行结果正确。