A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 郝亚平 于 2011-11-23 17:57 编辑

在定义类的时候,如果有多个构造函数。那么,基于代码优化与简化考虑,往往要在多个构造函数间进行相互调用,
但是多个构造函数在相互调用时候,比较特殊。不能直接用函数名去调用。得用到this语句做?
这里面有一种情况是构造函数调用陷入到死循环的情况(或者说对象初始化进入死循环的情况)。
那么,这个情况是什么呀?如何避免呀。谁给帮助总结总结。?谢谢。
--------
自己针对毕老师视频总结一下子:


A()
{
        B();
}

B()
{
        A();
}
当一个构造函数A调用了另一个构造函数B,那么,那个构造函数B就不能再调用这个构造函数A了。
也就是说,构造函数之间的调用不能随便调用。得保证是单向调用。而且像上面的那种情景分析也是非常不合理的设计。
双向调用构造函数,那么,这个有什么意思呀。。死循环。

----->其实毕老师,这样子提到这个问题。其实,是一种特殊情况,因为构造函数比较特殊嘛。特别强调构造函数的这种错误情况。
那么,这种情况又何止是针对于构造函数呀。对于所有的函数,无论是构造函数,还是一般的成员方法函数,都有相互调用。
都是出于代码简化与优化的考虑。只要它们之间存在着互相调用,就有可能引发这个死循环。
只要是方法调用,只要是违背了单向调用,而是采用了双向调用,就一定引发死循环。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马