当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
下面我们将通过一个小例子来了解一下this的相关用法与注意事项:
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


