那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

this關鍵字在Java中的用法

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-10 16:49 ? 次閱讀

this 關鍵字只能在方法內部使用,表示對“調用方法的那個對象”的引用。

其實簡單來說 this 關鍵字就是表示當前對象,下面我們來具體介紹 this 關鍵字在Java中的用法。

1、調用成員變量

在一個類的方法內部,如果我們想調用其成員變量,不用 this,我們會怎么做?

package com.ys.test;

/**
 * Create by YSOcean
 */
public class ThisTest {

    private String name = "Tom";

    public void  setName(String name){
        name = name;
    }

    public String getName() {
        return name;
    }

}

看上面的代碼,我們在 ThisTest 類中創建了一個 name 屬性,然后創建了一個 setName 方法,注意這個方法的形參也是 String name,那么我們通過 name = name 這樣賦值,會改變成員變量 name 的屬性嗎?

public static void main(String[] args) {
       ThisTest tt = new ThisTest();
       tt.setName("Marry");
       System.out.println(tt.getName());//Tom
   }

打印結果是 Tom,而不是我們重新設置的 Marry,顯然這種方式是不能在方法內部調用到成員變量的。因為形參的名字和成員變量的名字相同,setName 方法內部的 name = name,根據最近原則,編譯器默認是將這兩個 name 屬性都解析為形參 name,從而導致我們設值操作和成員變量 name 完全沒有關系,當然設置不了。

解決辦法就是使用 this 關鍵字。我們將 setName 方法修改如下:

public void  setName(String name){
       this.name = name;
   }

在調用上面的 main 方法進行賦值,打印的結果就是 Marry 了。

this 表示當前對象,也就是調用該方法的對象,對象.name 肯定就是調用的成員變量。

2、調用構造方法

構造方法是與類同名的一個方法,構造方法沒有返回值,但是也不能用 void 來修飾。在一個類中,必須存在一個構造方法,如果沒有,編譯器會在編譯的時候自動為這個類添加一個無參構造方法。一個類能夠存在多個構造方法,調用的時候根據參數來區分。

package com.ys.test;

/**
 * Create by YSOcean
 */
public class ThisTest {
    private String name;

    public ThisTest(){
        this("Marry");
    }
    public ThisTest(String name) {
        this.name = name;
    }
}

通過 this("Marry") 來調用另外一個構造方法 ThisTest(String name) 來給成員變量初始化賦值。

注意:通過 this 來調用構造方法,只能將這條代碼放在構造函數的第一行,這是編譯器的規定,如下所示:放在第二行會報錯。

圖片

3、調用普通方法

this 表示當前對象,那么肯定能夠調用當前類的普通方法。

public void printName(){
    this.say();
}

public void say(){
    System.out.println("say method...");
}

第 2 行代碼,在 printName() 方法內部調用了 say() 方法。

4、返回當前對象

/**
 * Create by YSOcean
 */
public class ThisTest {

    public Object newObject(){
        return  this;
    }
}

這表示的意思是誰調用 newObject() 方法,那么就返回誰的引用。

5、小結

好了,這就是Java中對 this 關鍵詞的介紹,記住一句話 this 代表的就是當前。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2975

    瀏覽量

    105149
  • 參數
    +關注

    關注

    11

    文章

    1859

    瀏覽量

    32427
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69054
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49286
  • this
    +關注

    關注

    0

    文章

    5

    瀏覽量

    3269
收藏 人收藏

    評論

    相關推薦

    C語言關鍵字const的幾種用法

    本期來講解一個C語言的關鍵字——const。
    發表于 06-21 11:05 ?1717次閱讀
    C語言<b class='flag-5'>關鍵字</b>const的幾種<b class='flag-5'>用法</b>

    嵌入式軟件編程關鍵字用法和原理

    ,但是某些關鍵字,例如const、static、extern和volatile等,不同的場合具有不同的含義,而且某些用法晦澀難懂,為此本文詳細介紹這些關鍵字
    發表于 06-20 07:37

    介紹一下關鍵字extern的用法

    學單片機C語言一定要熟悉關鍵字用法,本文介紹一下關鍵字extern的用法。1、extern的定義是:extern可以置于變量或者函數前,以標示變量或者函數的定義
    發表于 07-15 06:38

    關鍵字static的作用是什么

    頭文件的ifndef/define/endif 的作用?1.關鍵字static的作用是什么1). 函數體,一個被聲明為靜態的變量在這一函數被調用過程維持其值不變。2).
    發表于 11-09 07:23

    嵌入式程序員常見的const、static、volatile關鍵字

    嵌入式程序員const、static、volatile三個關鍵字的樸素認識摘要:C語言程序編寫,const、static關鍵字是比較熟悉的,volatile
    發表于 12-21 06:08

    IAR能否整個工程搜索關鍵字

    像mdk可以整個工程搜索關鍵字 IAR應該也有類似的功能吧,但是我貌似沒有找到
    發表于 11-08 07:21

    final關鍵字用法

    Java,final關鍵字可以用來修飾類、方法和變量(包括成員變量和局部變量)。下面就從這三個方面來了解一下final關鍵字的基本
    發表于 09-27 10:36 ?0次下載
    final<b class='flag-5'>關鍵字</b>的<b class='flag-5'>用法</b>

    javastatic關鍵字的作用

    static關鍵字是很多朋友在編寫代碼和閱讀代碼時碰到的比較難以理解的一個關鍵字,也是各大公司的面試官喜歡面試時問到的知識點之一。下面就先講述一下static關鍵字
    發表于 09-27 17:12 ?0次下載

    java final關鍵字用法技巧匯總解析

    談到final關鍵字,想必很多人都不陌生,使用匿名內部類的時候可能會經常用到final關鍵字。另外,Java的String類就是一個fi
    發表于 12-01 11:02 ?1137次閱讀
    <b class='flag-5'>java</b> final<b class='flag-5'>關鍵字</b><b class='flag-5'>用法</b>技巧匯總解析

    java的final關鍵字所起的作用解析

    java編程語言中,有時候需要告知編譯器一段數據是不變的編譯期常量。對于這種情況,編譯器可以將此常量值帶入需要用到它的計算式子當中,這種在編譯時執行計算式的方法減輕了運行時的開銷。通常,這類常量數據都是基本類型的數據,并賦予關鍵字
    發表于 12-01 11:29 ?2877次閱讀

    C++mutable關鍵字詳解與實戰

    mutable關鍵字詳解與實戰 C++mutable關鍵字是為了突破const關鍵字的限制,被mutable
    的頭像 發表于 09-10 09:23 ?5598次閱讀

    keilC51關鍵字code用法

    keil關鍵字code說明?用unsigned int 或signed char等定義的變量都存儲單片機的RAM,程序可以隨意更改這
    發表于 11-29 10:36 ?13次下載
    keil<b class='flag-5'>中</b>C51<b class='flag-5'>關鍵字</b>code<b class='flag-5'>用法</b>

    C語言中__attribute__ 關鍵字用法

    嵌入式開發,離不開 C 語言,C語言中有很多語法會直接或間接影響你代碼的質量,下面就來講講__attribute__ 關鍵字用法。 1. 什么是 __attribute__ GNU C 編譯器
    發表于 10-19 09:06 ?1.3w次閱讀

    const關鍵字應用總結

    C++的const關鍵字用法非常靈活,而使用const將大大改善程序的健壯性
    的頭像 發表于 05-26 09:06 ?614次閱讀

    static關鍵字的三種用法

    變量(StaticVariables):C語言中,使用`static`關鍵字來聲明靜態變量是一種常見的用法,它具有以下主要作用:1.生存期延長:靜態變量的生存期程序的整個運行期間,
    的頭像 發表于 11-10 08:00 ?581次閱讀
    static<b class='flag-5'>關鍵字</b>的三種<b class='flag-5'>用法</b>
    有百家乐的游戏平台| 3U百家乐官网娱乐城| 大发888游戏在线客服| 百家乐做庄家必赢诀窍| 玩百家乐官网去哪个娱乐城最安全| 百家乐官网游戏软件出售| 六合彩最快开奖| 大发888体育在线投注平台| 百家乐合法| 百家乐手机投注平台| 百家乐教父方法| 百家乐官网翻天百度影音| 模拟百家乐官网下| 百家乐官网真人娱乐场开户注册| 百家乐官网桌出租| 金沙城百家乐官网大赛规则| 百家乐官网路单破解方法| 最好的百家乐官网好评平台都有哪些 | 最新娱乐城送体验金| 六合彩特码开奖| 松滋市| 百家乐官网使用技法| 波音百家乐官网游戏| 百家乐官网视频免费下载| 百家乐官网网络赌博地址| 百家乐官网在线赌场| 乌兰县| 沙河市| 缅甸百家乐官网龙虎斗| 伯爵百家乐官网娱乐平台| 澳门百家乐官网网上赌城| 世嘉百家乐官网的玩法技巧和规则| 竞咪百家乐官网的玩法技巧和规则 | 大世界百家乐官网娱乐| 玩百家乐官网上高尔夫娱乐场| 百家乐投注方法新版| 巴特百家乐官网的玩法技巧和规则 | 百家乐分| 大发888下载客户端| 吴忠市| 百家乐官网讯特|