this关键字在平时java程序中经常遇到,有必要了解下具体的用法。
1,调用当前对象本身
package com.test.xuyz;
public class TestThis {
String s = "test";
public TestThis(String s){
System.out.println("这个S是 " + s);
System.out.println("1,这时this.s是 "+this.s);
this.s = s;
System.out.println("2,这时this.s是"+this.s);
}
public static void main(String[] args) {
TestThis test = new TestThis("testtesttest");
System.out.println("这个S是 " + test.s);
}
}
运行结果:
这个S是 testtesttest
1,这时this.s是 test
2,这时this.s是testtesttest
这个S是 testtesttest
在这个例子中,构造函数TestThis中的参数与成员变量同名,如果直接对s操作则是直接操作参数s,如果想操作成员变量则需要用this进行引用。
2,通过this调用另一个构造方法,用法:this(参数列表),这个仅仅在类的构造方法中使用
package com.xuyz.test;
public class TestThis {
public TestThis(String s){
System.out.println("String constructor: " + s);
}
public TestThis(int i ,String s){
this(s);
i++;
System.out.println("TestThis:"+i+",S is "+s);
}
public static void main(String[] args) {
new TestThis(20,"hao");
}
}
运行结果:
String constructor: hao
TestThis:21,S is hao
3,表示对当前对象的引用
package com.xuyz.test;
public class TestThis {
private int i = 0;
public TestThis test(){
this.i++;
return this;
}
public static void main(String[] args) {
TestThis tt = new TestThis();
System.out.println(tt.test().test().i);
}
}
运行结果:
2
注意:this关键字不能出现在static方法中。