Java的this关键字

245 阅读1分钟

1 使用

如下图,main方法中默认把类的实例化对象传给了实例方法(run),在实例方法(run)中用this表示,打印对象c的地址和实例方法中打印this的地址是相同的。如下:

image-20211214152137586.png

  • 另外注意点:先赋值实例变量再调用方法 和 先调用方法再给实例变量赋值 结果是不一样的(效果如下图)。

image-20211214153241961.png

2 this可以帮我们区分实例变量和局部变量:

  • this省略不写时,先找方法里面的局部变量中同名的变量,方法中没有局部变量则默认是找实例变量

image-20211214154528328.png

image-20211214154621651.png

  • 所以,想明确调用实例变量时,应该得加上this更好,代码可读性也更好(易于区分局部变量和实例变量)

  • 另外,如果方法中不定义局部变量,而是在参数中传过来一个跟实例变量同名的变量,没有this时,则这个变量调用的是参数中的变量。(但是加上this的话他就是指向实例变量)

image-20211214155003975.png

(以上例子和部分截图均来自B站“老男孩IT教育”的视频)