五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java不理解this?一分鐘徹底弄懂this關(guān)鍵字

2023-02-07 15:14 作者:密云榛子IT教育  | 我要投稿

this ,翻譯為:這、這個(gè),在java中應(yīng)該翻譯為 “本對象” 或 “對象本身” ,指向的是對象自己

類似于日常的稱呼,比如,別人稱呼你的時(shí)候應(yīng)該用姓名,比如稱呼“趙云”,趙云很帥、趙云武功很強(qiáng),但是趙云自己稱呼自己應(yīng)該用“我”,趙云:我很帥、我武功很強(qiáng)。而“我”就相當(dāng)于this。


this 其實(shí)就是一個(gè)變量,本質(zhì)上和普通的引用類型變量一樣。

比如上面的稱呼,無論稱呼“趙云”、“我”、“你”,本質(zhì)都是稱呼,而且稱呼的對象都是趙云。

this也是如此, 和其他該類的引用類型變量一樣,本質(zhì)都是變量,指向的也是同一個(gè)對象,只不過this是內(nèi)置的變量而已。

為了讓大家更清楚的理解,我們簡單介紹下對象的創(chuàng)建過程,以及如何與變量關(guān)聯(lián)的。

比如下面的代碼:

當(dāng)main方法開始運(yùn)行時(shí),java虛擬機(jī)會為方法創(chuàng)建“本地變量表”,用于存儲方法參數(shù)值、方法內(nèi)的局部變量,比如args、u、u2。

之后運(yùn)行方法內(nèi)的代碼,new User(), 創(chuàng)建User對象,虛擬機(jī)會在內(nèi)存的堆中創(chuàng)建,比如創(chuàng)建的對象內(nèi)存地址為:00000001? , 之后調(diào)用類構(gòu)造方法初始化對象。

然后將創(chuàng)建的對象賦值給變量u,實(shí)際在本地變量表中,變量u存放的是對象的內(nèi)存地址:00000001

之后?User u2 = u, 將u賦值給變量u2, 也就是將00000001? 賦值給u2。這樣,變量u、u2指向的就是同一個(gè)對象。


其實(shí)this和變量u、u2是一樣的,也會存儲到本地變量表中,存儲的也是對象的地址。比如:

當(dāng)運(yùn)行到u.toString()方法時(shí),java虛擬機(jī)也會為該方法創(chuàng)建本地變量表,如圖:

注:java虛擬機(jī)會為每個(gè)正在運(yùn)行的方法都會創(chuàng)建一個(gè)本地變量表。

變量表中第一個(gè)位置存放的就是this,值也是對象的內(nèi)存地址。由此可見,this和其他引用變量是沒有本質(zhì)區(qū)別的。

此時(shí),u、u2、this指向的是同一個(gè)對象,驗(yàn)證一下:

調(diào)用compare方法,將變量u作為參數(shù)傳入, 讓其與this比較。

由于==運(yùn)算符用于引用類型時(shí),只有當(dāng)引用指向的是同一個(gè)對象時(shí)才為真,運(yùn)行輸出:

為什么要有this?


通過代碼可以發(fā)現(xiàn),當(dāng)局部變量與對象屬性同名時(shí),由于局部變量的優(yōu)先級高于對象屬性,優(yōu)先使用局部變量。

如果要訪問對象屬性,就必須要使用“對象.” 的方式,而this就是指向當(dāng)前對象的引用。


this使用注意事項(xiàng)

this 的作用范圍是對象內(nèi)部,可以在對象方法、構(gòu)造方法中使用

也可用于給屬性賦值


this不能用于靜態(tài)方法中


由于靜態(tài)方法是屬于整個(gè)類的,調(diào)用通過類名訪問,不需要?jiǎng)?chuàng)建對象,方法內(nèi)如果有this的話,是沒辦法確認(rèn)這個(gè)this是指向哪個(gè)對象的。

詳細(xì)的也可以觀看視頻教程:https://www.bilibili.com/video/BV1XM4y1X79j


java不理解this?一分鐘徹底弄懂this關(guān)鍵字的評論 (共 條)

分享到微博請遵守國家法律
肃南| 吴忠市| 阳新县| 茌平县| 南平市| 山丹县| 西藏| 册亨县| 烟台市| 宜宾市| 黔西县| 通山县| 固镇县| 宿州市| 玉山县| 新郑市| 汾西县| 广宗县| 镇远县| 五大连池市| 米林县| 金门县| 珲春市| 乌兰察布市| 鄯善县| 寿光市| 修文县| 嘉荫县| 石家庄市| 遂宁市| 扬中市| 肇州县| 岫岩| 龙海市| 安徽省| 桂林市| 富民县| 平山县| 沂南县| 天柱县| 保靖县|