一道SCJP考题疑问

看到一个SCJP考题,代码如下
public class Hello {
String title;
int value;
public Hello() {
title += "World";
}
public Hello(int value) {
this.value = value;
title = "Hello";
Hello();
}
public static void main(String[] args) {
Hello c = new Hello(5);
System.out.println(c.title);
}
}
我觉得输出应该是Hello World, 可答案给的是compilation fails, 亲自测试果无法通过编译,提示找不到方法Hello(); 可是Hello();作为无参数构造函数之前定义过了,怎么会这样呢,请指教,谢谢了。

public Hello(int value) {
this.value = value;
title = "Hello";
Hello();
}
//这里的Hello()是构造方法必须写
//new Hello(); 才行 ,直接这
//样调用不了构造方法,
//可以这样写this()代表调用
//他的无参构造方法,但是this()必须
//是方法的第一行代码,

public Hello(int value) {
this();
this.value = value;
title = "Hello";
}
//也可以直接写一个方法叫Hello()
public void Hello() {
//操作
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-26
你自己都知道说:“可是Hello();作为无参数构造函数之前定义过了”

你平时构造函数都怎么用的啊 ,可以直接Hello()吗???

构造函数构造函数,当然是用来new一个对象的啊 肯定要new Hello()来用啊
第2个回答  2010-11-26
你要是想调用构造方法需要用new 关键字如果你直接使用Hello()这样的调用方式是在调用一个this.Hello()方法,但是你代码里并没有Hello()方法,所以当然找不到了
第3个回答  2010-11-26
构造函数只能在类被实例化的时候才能用,别的时候是调用不到的