就是调用构造器的顺序问题嘛:
main里面调用的是Tester(int var),根据其中的this("Good Language"),调用Tester(String s),根据Tester(String s)的this(),调用Tester(),得到输出“Java Program”
根据System.out.println(s)(s的值是"Good Language");,得到输出“Good Language”

解决方案 »

  1.   

    执行到 Tester t=new Tester(20);时会调用
    Tester(int var)
    {
      this("Good Language")
    }this是指当前对象程序中需要一个Tester的实例你没有显式调用那个constructor程序会调用默认的constructor
      

  2.   

    关于this的用法能否再说的明确一点呢?
      

  3.   

    this可以理解为“自己”
    如果“自己”不存在,就采用相应的构造器创建一个“自己”
    呵呵
      

  4.   

    this();//调用类的无参数构造方法
    this("ggs");//调用类的有参数构造方法
    this.var;//变量
    this.method();//方法
      

  5.   

    正常情况下,你使用THIS,指的是“目前对象”,也就是引用这个方法的那个reference,这个reference由编译器自动传入。但在构造函数中,它会调用符合该引数的某个构造函数,能够直接调用其他构造函数
      

  6.   

    class Tester
    {
       int var;
       Tester(double var)
       { 
            this.var = (int)var;
       }   Tester(String s)
       {
           this();  //调用 Tester()
           System.out.println(s);
       }   Tester(int var)
       { 
           this("Good Language");  //调用 Tester(String)
       }
       Tester()
       {
           System.out.println("Java Program");
       }   public static void main(String args[])
       {
          Tester t=new Tester(20); //调用 Tester(int)
       }
    }
      

  7.   

    new Tester(20)时,调用Tester(int var)
    然后this("Good Language")时调用Tester(String s)
    然后this()调用Tester()
    就这样