this关键字代表对象自身,如果new了一个对象之后,则这个this就是一个指向这个对象自己的一个引用,如下图:
根据上述描述,我们知道this是用于在方法内部获取当前对象的引用的关键字,其用法与其他引用并无不同。
用途:
this调用本类中的属性,也就是类中的成员变量
this调用本类中的其他方法;
this调用本类中的其他构造方法,调用时要放在构造方法的首行。
这几点都非常好理解,因为指向的是对象自身,能操作的自然都是成员变量以及类的方法。有了这些知识之后,我们再来看一个java代码里经常看到的构造方法写法:
public class Test{
private String s;
public Test(String s){
this.s = s;
}
}
初学者常常对这里有两个s感到困惑,现在我们就知道了,等号左边的this.s获取的是当前对象即外部的s字符串,而等号右边的s则必然是括号里的参数,因此这就把括号里的参数赋值给了成员变量s。this常常用于这种成员变量名字和方法参数一样的情形。
最后,我们来扩展一点题外话,关于static关键字。理解了this关键字之后,static关键字就能更加全面的被理解。static方法就是没有this的方法。注意这里需要仔细理解这个没有的意思。为什么说没有,是因为在static方法内部不能调用非static的方法,但反过来是可以的,且不需要创建对象。因此static方法很很像全局方法
网友评论