java中this指针的作用?

一.

   废话不多说,看代码:

  我们定义一个Student类,用来测试,其中,Student中有两个成员变量:StuName(学生姓名),StuNo(学生学号)。

java中this指针的作用?_第1张图片

运行结果:

java中this指针的作用?_第2张图片


当我们把this指针加上。

java中this指针的作用?_第3张图片

运行结果:

java中this指针的作用?_第4张图片

  这是什么意思呢?

 当我们在一个类中写一个方法时,当传入的参数的参数名该类的成员变量名相同,并且把参数赋值给与之同名的成员变量时(如图),

java中this指针的作用?_第5张图片


此时编译器并不知道到底是参数赋值给成员变量,还是成员变量赋值给参数;所以就有了this指针的诞生;

当我们把this指针加上时(如图):

java中this指针的作用?_第6张图片


这时编译器就会知道,是把传进来的参数赋值给成员变量。


二,

   说到这里相信大家应该就明白了,那接下来我们来看看如果传入的参数的参数名不同时,会是怎样的? 来我们上代码:



java中this指针的作用?_第7张图片


运行结果:

java中this指针的作用?_第8张图片

加上this指针之后:

java中this指针的作用?_第9张图片

运行结果:

java中this指针的作用?_第10张图片

 通过以上代码我们可以发现,当我们传入的参数的参数名不同时,并不会对结果造成影响,这又是什么情况呢? 

  原来因为编译器会隐示的给成员变量添加this指针,所以当参数不同时,照样可以运行了。

  小伙伴们懂了吗?

 不管懂不懂我也要废话几句。其实this指针其实就是一个类的对象,举个例子;如图,我们在Student类中添加一个方法交useThis(),并在方法里用this指针调用该类的其他方法;

java中this指针的作用?_第11张图片


运行结果:



  这又是什么原因呢?

  当我们用Student定义一个对象时,



如图中的s,此时s就会有一个属于自己的this指针,并指向他本身,在类的内部就可以用this指针(像一般的对象调用方法一样)调用类的方法。


三,

 以上是我对this指针的一些理解,希望对你有帮助,当你理解了this指针之后,在之后学习其他语言都会遇到,到时候你就能轻松的理解这个东西了。

四,  

若有异议,下方留言,我们一起讨论!

你可能感兴趣的