java中this指针的作用?
一.
废话不多说,看代码:
我们定义一个Student类,用来测试,其中,Student中有两个成员变量:StuName(学生姓名),StuNo(学生学号)。
运行结果:
当我们把this指针加上。
运行结果:
这是什么意思呢?
当我们在一个类中写一个方法时,当传入的参数的参数名与该类的成员变量名相同,并且把参数赋值给与之同名的成员变量时(如图),
此时编译器并不知道到底是参数赋值给成员变量,还是成员变量赋值给参数;所以就有了this指针的诞生;
当我们把this指针加上时(如图):
这时编译器就会知道,是把传进来的参数赋值给成员变量。
二,
说到这里相信大家应该就明白了,那接下来我们来看看如果传入的参数的参数名不同时,会是怎样的? 来我们上代码:
运行结果:
加上this指针之后:
运行结果:
通过以上代码我们可以发现,当我们传入的参数的参数名不同时,并不会对结果造成影响,这又是什么情况呢?
原来因为编译器会隐示的给成员变量添加this指针,所以当参数不同时,照样可以运行了。
小伙伴们懂了吗?
不管懂不懂我也要废话几句。其实this指针其实就是一个类的对象,举个例子;如图,我们在Student类中添加一个方法交useThis(),并在方法里用this指针调用该类的其他方法;
运行结果:
这又是什么原因呢?
当我们用Student定义一个对象时,
如图中的s,此时s就会有一个属于自己的this指针,并指向他本身,在类的内部就可以用this指针(像一般的对象调用方法一样)调用类的方法。
三,
以上是我对this指针的一些理解,希望对你有帮助,当你理解了this指针之后,在之后学习其他语言都会遇到,到时候你就能轻松的理解这个东西了。
四,
若有异议,下方留言,我们一起讨论!