this關(guān)鍵字總是指向調(diào)用該方法的對象。
this可以代表任何對象,當(dāng)this出現(xiàn)在某個方法體中時,它所代表的對象是不確定的,但它的類型是確定的,它所代表的對象只能是當(dāng)前類的(在那個類中就是那個類),只有當(dāng)這
個方法被調(diào)用時,它所代表的對象才被確定下來。誰在調(diào)用這個方法,this就代表誰。
〉在構(gòu)造器中引用該構(gòu)造器正在初始化的數(shù)據(jù)
〉在方法中引用調(diào)用該方法的對象
this關(guān)鍵字最大的作用就是讓類中的一個方法,訪問該類中另一個方法或?qū)嵗兞俊?/p>
public class Dog{ public void jump(){ system.out.this在構(gòu)造器中代表該構(gòu)造器正在初始化的對象。
public class Test{ //定義一個foo成員變量 public int foo; public ThisInContructor() { //在構(gòu)造器中定義一個foo局部變量 int foo = 0; //使用this代表該構(gòu)造器正在初始化的對象 //下面的代碼會將該構(gòu)造器正在初始化的對象的foo成員變量設(shè)為6 this.foo = 6; } public static void main(String[] args) { //輸出6 System.out.println(new ThisInContructor().foo) }}如果方法中有個局部變量和成員變量同名,而程序又需要訪問這個被覆蓋的成員變量,則必須使用this。
public class Test{ private String name = "李剛"; private static double price = 78.0; public static void main(String[] args) { int price = 65; //輸出65,局部變量覆蓋了成員變量 System.out.println(price); //輸出78.0 System.out.println(Test.price); //運行info()方法 new Test.info(); } public void info() { String name = "小明"; //輸出小明 System.out.println(name); //使用this來作為name變量的限定 //輸出,李剛 System.out.println(this.name); }}
新聞熱點
疑難解答