更新時間:2020-09-15 16:37:36 來源:動力節點 瀏覽5917次
在java的學習中,當接觸到類這一章的時候,就會避免不了的接觸到this關鍵字,今天小編就來講講that關鍵字的作用有哪些
一、java中出現了一個小問題(就近原則問題)
java中類實現了封裝并通過private對成員變量進行了私有化。但是又出現了新的問題。下面看圖片。
這是創建了一個person類,并定義了兩個私有的成員變量name和age還有一個方法speak()方法。但是要注意到方法speak()中也有兩個局部變量name和age這兩個變量和成員變量重名了。
二、局部變量和成員變量重名就會產生一個問題。
根據java中的就近原則,speak()方法中打印出來的name和age就是上面的“哈哈”和“16”,即使此時外類通過set方法賦值,照樣打印出來的是方法中局部變量賦的值。這就是java中的就近原則。
三、處理問題:如何讓speak()方法打印成員變量賦的值呢?
這就引入了this關鍵字。
this關鍵字的作用就是用來區分成員變量和局部變量的。
使用方法:this.變量。就代表成員變量。如圖:
如圖加上this關鍵字就表示成員變量了。
四、this內存圖:
由內存圖可以看出this是本類對象的引用,那個對象調用,this就隸屬那個對象,而對象是堆內存地址,this也就變成了堆內存首地址。成員變量在堆內存中因此this也就成為了指向成員變量的對象。可以通過內存圖理解this.
五、set方法的變化理解
先看圖:
這是set方法,里面有個形參age就相當于該方法有一個局部變量age,也和成員變量發生了沖突。如果按圖中賦值,根據就近原則只是將值賦給了自己。如何解決這個問題?
也是通過this的方法進行解決的。看圖
通過this賦值就將值賦給了成員變量。
六、this關鍵字的調用者,比年齡案例
如圖:本案例就是為了強調:那個對象調用了this,this就指向了那個對象。
這是兩個年齡的比較,首先是p1調用了this,this指代的就是p1的首地址,compare參數是p2,最終會是P1與p2的比較。
也就是說,this關鍵字就是本類對象的引用,以上就是動力節點java培訓機構的小編針對“Java that關鍵字的作用有哪些”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習