成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java基礎卻常被忽略:全面講解this的實戰技巧!

開發 前端
通過今天的學習,我們知道了 this 的四種常見用法:區分成員變量和局部變量。在構造方法中調用其他構造方法。實現鏈式調用。作為參數傳遞。

大家好,我是小米,一個熱愛分享技術的 29 歲程序員。最近,一位朋友跟我訴苦,說他參加了一場 Java 社招面試,面試官問了一個看似簡單卻讓人抓狂的問題——“請講講 this 關鍵字的用法。”

“這不是基礎到不能再基礎的問題嗎?居然問這個!”朋友心里這么想,但冷靜下來才發現,雖然每天用 this,但真要系統解釋卻有點卡殼。于是,我決定整理一篇文章,幫大家理清楚 this 的各種妙用,順便解答幾個常見的面試陷阱。

this 是什么?

this 是 Java 中的一個關鍵字,簡單說,它代表當前對象的引用。當我們在類中調用它時,this 指向當前類的實例。它的主要作用包括:

  • 區分類的成員變量和局部變量。
  • 在構造方法中調用其他構造方法。
  • 返回當前對象(鏈式調用)。
  • 作為參數傳遞。

來看幾個場景化的例子,理解它的用法。

區分成員變量和局部變量

先來看一個場景,小明是個初級開發,剛寫完以下代碼:

圖片圖片

小明很疑惑,為什么他調用setName("小米") 后,getName() 返回的還是null?其實問題出在name = name;這行代碼。

這里的兩個 name 指的是同一個局部變量!如果想賦值給類的成員變量,必須用 this 來指明。

正確代碼如下:

圖片圖片

這就是 this 的最基礎用法之一:區分同名變量。

在構造方法中調用其他構造方法

接下來,假設你要寫一個 Person 類,有多個構造方法。面試官可能會問:“如何避免構造方法中代碼重復?”

用 this 來調用另一個構造方法就是最佳答案!

來看代碼:

圖片圖片

上面的代碼中,this(name, 0)調用了第二個構造方法。這樣既減少了重復代碼,又方便統一管理邏輯。

注意:

  • 構造方法中調用其他構造方法時,this 必須是方法的第一行。
  • 不允許循環調用構造方法,否則會編譯錯誤。

支持鏈式調用

面試中,很多人會提到鏈式調用。比如我們希望下面的代碼可以運行:

圖片圖片

實現鏈式調用的關鍵就在于方法返回 this。代碼如下:

圖片圖片

通過返回this,我們可以在一個語句中完成多個調用,大大提升代碼的可讀性和優雅度。

作為參數傳遞

有時候,我們希望把當前對象傳遞給另一個方法或對象,這時候 this 就派上用場了!

比如,有一個 Printer 類,負責打印對象的信息。我們可以這樣實現:

圖片圖片

調用person.print()時,this 會將當前對象傳遞給Printer 的print 方法,從而實現打印。

面試陷阱:this 的幾個誤區

1. 靜態方法中能不能使用 this?

不能!因為靜態方法是屬于類的,而 this 是屬于實例的。在靜態方法中,this 根本不存在。

錯誤示例:

圖片圖片

2. this 可以出現在匿名內部類中嗎?

可以!但是要注意 this 的含義。

匿名內部類中,this 指的是匿名類實例,而不是外部類實例。如果需要引用外部類,可以用 外部類名.this 的方式。

示例代碼:

圖片圖片

總結

通過今天的學習,我們知道了 this 的四種常見用法:

  • 區分成員變量和局部變量。
  • 在構造方法中調用其他構造方法。
  • 實現鏈式調用。
  • 作為參數傳遞。

同時,我們也提醒自己:靜態方法中不能使用 this,匿名內部類中要注意 this 的指向。

責任編輯:武曉燕 來源: 軟件求生
相關推薦

2009-12-29 16:37:35

Ubuntu 9.10

2024-01-10 16:46:13

Kubernetes容器

2024-06-13 08:00:00

MySQLMySQLDump數據庫

2025-06-11 09:28:22

2010-08-13 14:44:26

思科路由器IOS軟件

2024-06-27 08:41:21

2022-05-10 09:33:50

Pandas技巧代碼

2018-10-30 12:15:26

CDN網絡技巧

2025-05-14 08:20:00

Linux權限管理sudo

2009-08-26 08:42:09

思科認證考試資料CCNA實戰技巧

2021-08-17 11:20:25

Vue前端技巧

2024-05-17 08:38:22

2009-12-24 16:15:17

2025-04-23 08:35:00

2024-10-10 14:50:02

編程Java開發

2025-02-13 08:06:54

2009-10-23 18:29:02

linux Debia

2010-04-15 16:03:19

Hyper-V災難恢復

2013-09-29 10:37:32

2024-11-11 10:00:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色在线网站 | 黄网站免费在线看 | 一a级片 | 久久久www成人免费无遮挡大片 | 亚洲精品福利在线 | 欧美激情在线精品一区二区三区 | 国产精品欧美一区二区三区 | 国产激情在线观看 | 久久午夜精品 | 精品欧美乱码久久久久久 | 成人在线观看免费 | 日韩欧美在线一区 | 电影91久久久 | 色网站在线免费观看 | 日韩美香港a一级毛片免费 国产综合av | 精品久久久久久久久久久久 | 日韩精品免费在线 | 欧美精品在线免费观看 | 中文字幕精品一区 | 欧美日韩视频在线第一区 | 看特级黄色片 | 伊人久久免费视频 | 日本在线观看视频 | 天天插天天操 | 亚洲黄色片免费观看 | 狠狠伊人| 在线午夜 | 久久国产精品久久久久久久久久 | 亚洲成av人片在线观看 | 91精品国产综合久久精品图片 | 亚洲综合色丁香婷婷六月图片 | 91精品久久| sese视频在线观看 | 亚洲一区视频在线 | 欧美日韩在线免费观看 | 另类在线| 国产成人a亚洲精品 | 欧美成人免费在线视频 | 日日操夜夜干 | 中文字幕一区二区三区不卡在线 | 欧美在线一区二区三区 |