复数相乘的问题。输出不对。
代码如下:其他的输出也会有些错误。难道是return时把a值给改变了?
public class ComplexNumber {
public double realPart ;
public double imaginPart ;
public ComplexNumber()
{}
public ComplexNumber(double r,double i)
{
realPart = r ;
imaginPart = i ;
}
public double getRealPart()
{
return realPart;
}
public double getImaginaryPart()
{
return imaginPart;
}
public double setRealPart(double d)
{
realPart = d ;
return realPart ;
}
public double setImaginaryPart(double d)
{
imaginPart = d;
return imaginPart ;
}
//复数相加
public Object complexAdd(ComplexNumber c)
{
realPart = c.realPart +realPart;
imaginPart = c.imaginPart + imaginPart;
return new ComplexNumber(realPart,imaginPart);
}
//复数相减
public Object complexMinus(ComplexNumber c)
{
realPart = realPart - c.realPart;
imaginPart = imaginPart - c.imaginPart;
return new ComplexNumber(realPart,imaginPart);
}
//复数相乘
public Object complexMulti(ComplexNumber c)
{
realPart = realPart*c.realPart - imaginPart*c.imaginPart;
imaginPart = realPart*c.imaginPart + imaginPart*c.realPart;
return new ComplexNumber(realPart,imaginPart);
}
//复数的大小
public Object complexSize()
{
double a = Math.sqrt(realPart*realPart+imaginPart*imaginPart);
return a;
}
public String toString()
{
String rtr_str = "";
if (imaginPart > 0)
rtr_str = "(" + realPart + "+" + imaginPart + "i" + ")";
if (imaginPart == 0)
rtr_str = "(" + realPart + ")";
if (imaginPart < 0)
rtr_str = "(" + realPart + imaginPart + "i" + ")";
return rtr_str;
}
public static void main(String[] argv)
{
ComplexNumber a = new ComplexNumber(2,5);
ComplexNumber b = new ComplexNumber(3,-4);
System.out.println(a + "+" + b + "=" + a.complexAdd(b) );
System.out.println(a + "-" + b + "=" + a.complexMinus(b));
System.out.println(a + "*" + b + "=" + a.complexMulti(b));
System.out.println(b + "的大小" + "=" + b.complexSize());
}
}