Java的this关键字只能在方法内部使用,表示“调用该方法的那个对象”的引用
比如我们在构造实体类的时候常用的set方法,通常都使用this关键字,示例代码如下:
package com.dhcc.mhealth.web.jklapi.unit.test;
public class TestThis {
String userName;
public void setUserName(String userName) {
System.out.println(this.getClass());
this.userName = userName;
}
public String getUserName() {
return userName;
}
public static void main(String[] args) {
TestThis testThis = new TestThis();
testThis.setUserName("mark");
System.out.println(testThis.getUserName());
}
}
// output: class com.dhcc.mhealth.web.jklapi.unit.test.TestThis
// output: mark
我们在main方法中new了一个TestThis类的对象testThis,然后调用setUserName(String userName)方法,在set方法内部,this即代表testThis这个对象,那么this.userName即代表testThis的全局变量userName,而等号右边的userName则代表方法入参,这样就完成了对全局变量userName的赋值。当然这里的setUserName的形参我们可以取任何名字,比如叫args,但是这个形参的实际含义就是用户姓名,所以用userName更合适些,而使用this关键字,使得我们和编译器可以区分出来哪一个是全局变量,哪一个是入参。