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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小蚊子 中级黑马   /  2013-12-19 22:28  /  1363 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么构造函数不能使用递归??

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

4 个回复

倒序浏览
构造函数 主要是用来创建对象时候初始化对象用的

在创建对象的时候只执行一次  应该不能使用递归的
回复 使用道具 举报
查了资料,好像说与编译器有关,可能会造成死循环。构造函数是类中声明的一种特殊的成员函数,起作用是在对象被创建时使用特定的值构造对性,将对象初始化为一个特定的状态,构造函数的名字与它所属的类名相同,被声明为公有函数,且没有任何类型的返回值,在创建对象时被自动调用;
而且定义为递归函数,意义也不大。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
想法奇特!{:soso_e179:}
构造方法是特殊的方法,构造函数的名字必须和类名完全相同,构造函数不能有返回值,就是void 也不要写,构造函数不可以被子类继承构造函数可以重载但是不可以被子类覆盖,不同于一般方法,所以不能像普通方法一样自己调用自己。
从递归角度考虑,当可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减,并且要有一个明确的结束的条件。
所以就算构造方法内部可以调用自己,构造函数就是为对象初始化的,好像初始化时也没必要自己调用自己。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
上面两位解释的真好,长见识了。我就说个别的吧,楼主的头像不错,脑袋大大的,是程序员的节奏。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马