Java中this关键词在创建对象时用到,表示当前对象的引用(引用成员变量/成员方法),具体有三种用法,下面将用代码详细介绍每种用法。
一、当成员变量的变量名与成员方法中局部变量同名时,this表示当前对象的引用。
![](https://img-blog.csdnimg.cn/img_convert/069a36dd3e788a6158de8fa5452cfebd.png)
上面代码中成员变量与构造方法中的局部变量同名,局部变量优先级高于成员变量,也就是说,构造方法中的name = name;name都是局部变量,那么成员变量未被赋值,在调用print函数时打印的是成员变量的默认初始值。
![](https://img-blog.csdnimg.cn/img_convert/cccfab5a487bb30be2154e098908a71a.png)
当我们加上this时,表示对象引用的成员变量,可以区分两个变量。在print()函数中,name,age,color 相当于this.name,this.age,this.color.只是省略了。
![](https://img-blog.csdnimg.cn/img_convert/b813211350e7e38ca449940df9770939.png)
结果:
![](https://img-blog.csdnimg.cn/img_convert/278719fe435f0ba6d40c2821cf6699c6.png)
二、this() 表示调用当前对象的的构造方法从而可以帮助变量初始化;
但是this调用其他构造方法必须写在构造方法的第一行;
this()必须写在构造方法里;不可以形成环调用;
有参的构造方法调用无参的构造方法:
![](https://img-blog.csdnimg.cn/img_convert/da4690b17676ba0cadbbab96280a3e4c.png)
运行结果:
![](https://img-blog.csdnimg.cn/img_convert/e3a35b2c6cf5e673d3877a5b88d080e9.png)
同样,也可以在无参的构造方法中调用其他带参的构造方法:
![](https://img-blog.csdnimg.cn/img_convert/14d7c3992c8634ba827c959c7fa136f0.png)
运行结果:
![](https://img-blog.csdnimg.cn/img_convert/79bb46c9614c30487d853ff0f5a50f09.png)
三、this.func( ) 调用当前对象的成员方法
![](https://img-blog.csdnimg.cn/img_convert/982c7da77d6c321b91dda461a60c2889.png)
运行结果:
![](https://img-blog.csdnimg.cn/img_convert/2c209761a451f37a2f3dafcdd61c2aee.png)
以上就是this关键字在Java中的三种用法。本人学识尚浅,希望大家在评论中指出存在的问题,帮助我改正,我会积极学习的,谢谢大家啦!