直接上代码:
      public class A{
         int i;
        A(){}
         A(int i){this.i=i;}
          A(String a){this();}
}  
  请问这段代码中"this();"指的是哪一个构造方法呢?求大神详细的解释。

解决方案 »

  1.   

    this();一直都是指的是空的构造方法么?或者说是指的默认的构造方法?
      

  2.   

    Java中没有指针的说法其实是不对的,在Java方法调用时,Java虚拟机默认把调用方法的对象当做方法的第一个参数传递到了方法中;在Java方法中用this替代这个隐藏的参数,所以也就是this这个关键字只能在方法内部使用的原因了;
    上段代码的this()指的是类A的无参构造方法A(){}.其实this()就相当于A();
      

  3.   


    this 指针 用来指向当前对象,你代码中的当然是当前对象的构造函数 即 构造函数A(){} 
      

  4.   

    对,上段代码的this()就指的是空的构造方法,如果你改成:
    this(Integer.valueof(a))就指的是A(int i){this.i=i;}了
      

  5.   

    this()相当于A()
    super()相当于 parent()
      

  6.   

    this是指当前类对象,this()是指当前类对象的默认构造函数。
      

  7.   


    public class A {
    int i; A() {
    System.out.println("A的带String参数的构造方法");//在空构造方法中打印一句话
    } A(int i) {
    this.i = i;
                    System.out.println("i");
    } A(String a) {
    this();
    }

    public static void main(String[] args) {
                //用A的带String参数的构造方法new一个对象,看看打印的结果,就知道调用的是那个构造方法了
    new A("test");
    }
    }