當(dāng)一個(gè)對(duì)象創(chuàng)建后,Java虛擬機(jī)(JVM)就會(huì)給這個(gè)對(duì)象分配一個(gè)引用自身的指針,這個(gè)指針的名字就是this。因此,this只能在類中的非靜態(tài)方法中使用,靜態(tài)方法和靜態(tài)的代碼塊中絕對(duì)不能出現(xiàn)this,并且this只和特定的對(duì)象關(guān)聯(lián),而不和類關(guān)聯(lián),同一個(gè)類的不同對(duì)象有不同的this。

下面我們將通過一個(gè)小例子來了解一下this的相關(guān)用法與注意事項(xiàng):

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

package test;public class ThisTest {    private int i=0;    //第一個(gè)構(gòu)造器:有一個(gè)int型形參
    ThisTest(int i){       this.i=i+1;//此時(shí)this表示引用成員變量i,而非函數(shù)參數(shù)i
       System.out.println("Int constructor i——this.i:  "+i+"——"+this.i);

       System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));       //從兩個(gè)輸出結(jié)果充分證明了i和this.i是不一樣的!
    }    //  第二個(gè)構(gòu)造器:有一個(gè)String型形參
    ThisTest(String s){

       System.out.println("String constructor:  "+s);

    }    //  第三個(gè)構(gòu)造器:有一個(gè)int型形參和一個(gè)String型形參
    ThisTest(int i,String s){       this(s);//this調(diào)用第二個(gè)構(gòu)造器       //this(i); this調(diào)用第一個(gè)構(gòu)造器

      

       this.i=i++;//this以引用該類的成員變量
       System.out.println("Int constructor:  "+i+"/n"+"String constructor:  "+s);

    }    public ThisTest increment
        
		

網(wǎng)友評(píng)論