专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java that关键字的作用有哪些

Java that关键字的作用有哪些

更新时间:2020-09-15 16:37:36 来源:动力节点 浏览5193次

在java的学习中,当接触到类这一章的时候,就会避免不了的接触到this关键字,今天小编就来讲讲that关键字的作用有哪些

一、java中出现了一个小问题(就近原则问题)

java中类实现了封装并通过private对成员变量进行了私有化。但是又出现了新的问题。下面看图片。

java that关键字

这是创建了一个person类,并定义了两个私有的成员变量name和age还有一个方法speak()方法。但是要注意到方法speak()中也有两个局部变量name和age这两个变量和成员变量重名了。

二、局部变量和成员变量重名就会产生一个问题。

根据java中的就近原则,speak()方法中打印出来的name和age就是上面的“哈哈”和“16”,即使此时外类通过set方法赋值,照样打印出来的是方法中局部变量赋的值。这就是java中的就近原则。

三、处理问题:如何让speak()方法打印成员变量赋的值呢?

这就引入了this关键字。

this关键字的作用就是用来区分成员变量和局部变量的。

使用方法:this.变量。就代表成员变量。如图:

java that关键字

如图加上this关键字就表示成员变量了。

四、this内存图:

java that关键字

由内存图可以看出this是本类对象的引用,那个对象调用,this就隶属那个对象,而对象是堆内存地址,this也就变成了堆内存首地址。成员变量在堆内存中因此this也就成为了指向成员变量的对象。可以通过内存图理解this.

五、set方法的变化理解

先看图:

java that关键字

这是set方法,里面有个形参age就相当于该方法有一个局部变量age,也和成员变量发生了冲突。如果按图中赋值,根据就近原则只是将值赋给了自己。如何解决这个问题?

也是通过this的方法进行解决的。看图

java that关键字

通过this赋值就将值赋给了成员变量。

六、this关键字的调用者,比年龄案例

如图:本案例就是为了强调:那个对象调用了this,this就指向了那个对象。

java that关键字

java that关键字

这是两个年龄的比较,首先是p1调用了this,this指代的就是p1的首地址,compare参数是p2,最终会是P1与p2的比较。

也就是说,this关键字就是本类对象的引用,以上就是动力节点java培训机构的小编针对“Java that关键字的作用有哪些”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>