例1:
public class Hua{
Hua(int i){
System.out.println("HUA£º"+i);
new Hua();
}
Hua(){
System.out.println("HUA");
new Hua(1);
}

public static void main(String[] args) {
new Hua();
}
} 例2:
public class Hua{
Hua(int i){
//System.out.println("HUA£º"+i);
new Hua();
}
Hua(){
//System.out.println("HUA");
new Hua(1);
}

public static void main(String[] args) {
new Hua();
}
} 例3:
public class Hua{
Hua(int i){
//System.out.println("HUA£º"+i);
new Hua();
}
Hua(){
System.out.println("HUA");
new Hua(1);
}

public static void main(String[] args) {
new Hua();
}
} ----------------------------------例1和例3都可以运行,但例2运行的时候会出现错误。我想是不是构造方法中调用另一个构造方法的时候,两个构造方法中间必须执行一次输出或别的什么才可以???
高手解释一下,谢谢

解决方案 »

  1.   

    应该是这样的:public class Hua{
        Hua(int i){
           System.out.println("i=" + i);
        }
        
        Hua(){
           this(1);
        }    public static void main(String[] args) {
            new Hua();
        }
    }
      

  2.   

    楼上的正解.
    在java种,除构造器外,编译器禁止在其他任何方法中调用构造器.而调用方法就是this关键字 !
      

  3.   

    构造函数只能互相调用一次,也就是说Hua()中调用了Hua(int i),那么后者就不能再调用前者,反过来也一样