日期:2014-05-20  浏览次数:20659 次

当前对象与形参对象的迷惑
题目:
-----------------------------------------------------------------
(1)复数类 ComplexNumber() 的属性
m_dRealPart: 实部,代表复数的实数部分;
m_dImaginPart: 虚部
(2)复数类 ComplexNumber 的方法
ComplexNubmer():构造函数 将 实部与虚部都置为0;
ComplexNumber(double r,double i): 构造函数,创建复数
对象的同时完成复数的实部,虚部的除数化,r为实部的初值,i为虚部的处置。
getRealPart(): 获得复数对象的实部。
getImaginaryPart(): 获得复数对象的虚部。
setRealPart(double d): 把当前复数对象的实部设置为给定的形参的数字。
setImaginaryPart(double d): 把当前复数对象的虚部设置为给定的形参的数字。
complexAdd(ComplexNumber c): 当前复数对象与形参复数对象相加,所得的结果也是复数值,返回给此方法的调用者。
complexAdd(double c) : 当前复数对象与形参复数对象相加,所得的结果仍是复数值,返回给此方法的调用者。


这个我不懂的是 这两句
-----------------------------
complexAdd(ComplexNumber c): 当前复数对象与形参复数对象相加,所得的结果也是复数值,返回给此方法的调用者。

complexAdd(double c) : 当前复数对象与形参复数对象相加,所得的结果仍是复数值,返回给此方法的调用者。
-----------------------------
这个代码应该怎么写,我写了很多都不行 返回结果 返回的是double的值吗? 哪个C 有什么用?  
哪个大虾 帮帮忙啊 我想了很久了 就是想不出来 谢谢了

------解决方案--------------------
complexAdd(double c) : 当前复数对象与形参复数对象相加,所得的结果仍是复数值,返回给此方法的调用者。
既然如此,你又“返回结果 返回的是double的值吗?”何出此言?
------解决方案--------------------
Java code

ComplexNumber complexAdd(ComplexNumber c){
   this.m_dRealPart += c.m_dRealPart ;
   this.m_dImaginPart += c.m_dImaginPart;
   //如果你的构造方法是如public ComplexNumber(double,double)的话为
   return new ComplexNumber(this.m_dRealPart,this.m_dImaginPart );
}
ComplexNumber complexAdd(double c){
   //你这里的c是指什么啊,是虚部的话
   this.m_dImaginPart += c;
   return new ComplexNumber(this.m_dRealPart,this.m_dImaginPart );
   //你这里的c是指什么啊,是实部的话,用下面的代码
   //this.m_dRealPart += c;
   //return new ComplexNumber(this.m_dRealPart,this.m_dImaginPart );
}

------解决方案--------------------
楼上代码有问题。相加的同时被加复数自身也被改变了,不合题意。

这样就可以了:
Java code

ComplexNumber complexAdd(ComplexNumber c){
   return new ComplexNumber(m_dRealPart + c.m_dRealPart, m_dImaginPart + c.m_dImaginPart);
}