为什么需要this关键字
当存在类的成员方法的形参名和成员变量名相同时,在方法体中访问这个变量名,由于就近原则,所以这里访问的同名变量是局部变量方法的形参,而不是类的成员变量,这种情况下就需要this关键字访问到同类下同名的成员变量。
this关键字的概念和语法
在Java某个类的每一个成员方法的形参列表中,都存在一个隐式的传参,传入的是当前对象,这个当前对象用this关键字指向它,所以this其实是一个引用,指向当前对象。
当前对象: 成员方法要想执行,必须使用一个对象来调用它,哪个对象来调用成员方法,这个对象就是这个成员方法的当前对象,当前对象作为一个隐式传参传给成员方法。
this关键字的语法也非常简单:
this.成员变量名
使用“this.”加上成员变量名,就是访问该对象的同名成员变量,而不是访问方法内同名的局部变量。
this关键字的作用
- 当成员方法中存在与成员变量同名的局部形参变量时,可以使用this关键字做区分。
- this引用也可以用于构造器中作为默认引用,由于构造其是直接使用new关键字来调用,而不是使用对象来调用的,所以this在构造器中代表该构造器正在初始化的对象。
注意
- 由于成员方法中隐含了隐式传参,所以成员方法中才能任意访问成员变量和其他成员方法,在没有出现同名局部变量的情况下,没有必要把“this.”写出来。
- static静态方法中是不能访问成员变量和成员方法的,因为其没有this传参,没有对象,也不依赖对象执行。
- this关键字用来区分成员方法中同名的成员变量和形参名,一般用在给成员变量赋值的方法中,比如构造方法(构造器)。