黑马程序员技术交流社区
标题:
关于构造方法的递归问题
[打印本页]
作者:
sprinter
时间:
2015-3-1 10:32
标题:
关于构造方法的递归问题
本帖最后由 sprinter 于 2015-3-1 10:36 编辑
关于构造方法的递归问题。
<code><font size="2">public class MyClass {
public static void main(String[] args) {
new MyClass(0);
}
public MyClass(int num) {
if ((num++) < 5) {
System.out.print(num);
new MyClass(num);//用new关键字就不是递归了
// MyClass(num);
// 错误:没有为类型 MyClass 定义方法 MyClass(int)
}
}
/*
* private void MyClass(int num) {
* //普通方法可以和构造方法同名
* //提示:此方法具有构造函数名
* //建议:更改为构造函数
* }
*/
class a {
public a() {
// this();//错误:递归性构造函数调用 MyClass.a()
//this(2);//错误:递归性构造函数调用 MyClass.a(int)
}
public a(int a) {
this();
}
}
}
</font></code>
复制代码
结论:
构造方法不能递归,就类似于static不能修饰局部变量一样。
在java中有一种错误叫Recursive constructor invocation,即递归性构造函数调用。
作者:
zhou1234
时间:
2015-3-12 20:50
不错不错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2