java中this指針的兩種用法

java中的this指針有兩種用法,一是用在構(gòu)造函數(shù)中,二是用在公用方法中。
定義:是一個(gè)系統(tǒng)隱含的指針,被自動(dòng)附加在非靜態(tài)的成員函數(shù)的參數(shù)列表中。(靜態(tài)函數(shù)內(nèi)部沒有this指針)

1.在構(gòu)造函數(shù)中的用法

用來(lái)把參數(shù)賦值給與構(gòu)造函數(shù)形參同名的成員變量。

class A
{
    int i = 1;
    
    public A(int i)  //構(gòu)造函數(shù)
    {
        this.i = i; //如果寫成i = i,明顯不合適
    }
}

public class Test
{
    public static void main(String[] args)
    {
        A a1 = new A(2);
        System.out.printf("i = %d\n", a1.i);
    }   
}

輸出結(jié)果:i = 2

2.在公用方法中

同一個(gè)類創(chuàng)建出來(lái)的對(duì)象在堆中都有屬于自己的數(shù)據(jù)成員,但公用方法是放在代碼區(qū)共用的。當(dāng)調(diào)用公用方法對(duì)數(shù)據(jù)成員進(jìn)行操作時(shí),并不知道操作的是哪個(gè)對(duì)象中的成員,因此有了隱含的this指針,每一個(gè)非static方法中都隱含一個(gè)this指針,指向當(dāng)前正在調(diào)用該方法的對(duì)象。

class A
{
    int i = 1;
    
    public A(int j)  
    {
        i = j;
    }
    public void show()
    {
        System.out.printf("i = %d\n", this.i); //this是隱含的,可寫可不寫,但一般寫出
    }
}

public class Test
{
    public static void main(String[] args)
    {
        A a1 = new A(2);
        A a2 = new A(3);
        
        a1.show();
        a2.show();
    }   
}
i = 2
i = 3
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容