当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。

下面我们将通过一个小例子来了解一下this的相关用法与注意事项:

万码学堂,电脑培训,计算机培训,Java培训,JavaEE开发培训,青岛软件培训,软件工程师培训

package test;public class ThisTest {    private int i=0;    //第一个构造器:有一个int型形参
    ThisTest(int i){       this.i=i+1;//此时this表示引用成员变量i,而非函数参数i
       System.out.println("Int constructor i——this.i:  "+i+"——"+this.i);

       System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));       //从两个输出结果充分证明了i和this.i是不一样的!
    }    //  第二个构造器:有一个String型形参
    ThisTest(String s){

       System.out.println("String constructor:  "+s);

    }    //  第三个构造器:有一个int型形参和一个String型形参
    ThisTest(int i,String s){       this(s);//this调用第二个构造器       //this(i); this调用第一个构造器

      

       this.i=i++;//this以引用该类的成员变量
       System.out.println("Int constructor:  "+i+"/n"+"String constructor:  "+s);

    }    public ThisTest increment