java中的this關鍵字

2021-06-10 02:57:20 字數 1512 閱讀 9670

1. this是指當前物件自己。

當在乙個類中要明確指出使用物件自己的的變數或函式時就應該加上this引用。如下面這個例子中:

public class hello

public static void main(string args)

} 執行結果:

s = helloworld!

1 -> this.s = hello

2 -> this.s = helloworld!

在這個例子中,建構函式hello中,引數s與類hello的變數s同名,這時如果直接對s進行操作則是對引數s進行操作。若要對類hello的成員變數s進行操作就應該用this進行引用。執行結果的第一行就是直接對建構函式中傳遞過來的引數s進行列印結果; 第二行是對成員變數s的列印;第三行是先對成員變數s賦傳過來的引數s值後再列印,所以結果是helloworld!

2. 把this作為引數傳遞

當你要把自己作為引數傳遞給別的物件時,也可以用this。如:

public class a

public void print()

} public class b

public void print()

} 執行結果:

hello from a!

hello from b!

在這個例子中,物件a的建構函式中,用new b(this)把物件a自己作為引數傳遞給了物件b的建構函式。

3. 注意匿名類和內部類中的中的this。

有時候,我們會用到一些內部類和匿名類,如事件處理。當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。如下面這個例子:

public class a catch(interruptedexception ie)

} }

}; //注意這裡有;

thread.start();

} public void run()

public static void main(string args) throws exception

在上面這個例子中, thread 是乙個匿名類物件,在它的定義中,它的 run 函式裡用到了外部類的 run 函式。這時由於函式同名,直接呼叫就不行了。這時有兩種辦法,一種就是把外部的 run 函式換乙個名字,但這種辦法對於乙個開發到中途的應用來說是不可取的。那麼就可以用這個例子中的辦法用外部類的類名加上 this 引用來說明要呼叫的是外部類的方法 run。

4。在建構函式中,通過this可以呼叫同一class中別的建構函式,如

public class flower

flower(string ss){}

flower(int petals, sting ss)

} 值得注意的是:

1:在構造呼叫另乙個建構函式,呼叫動作必須置於最起始的位置。

2:不能在建構函式以外的任何函式內呼叫建構函式。

3:在乙個建構函式內只能呼叫乙個建構函式。

java中this關鍵字

1 this 關鍵字 疑問 建立的p 物件為什麼沒有值。解答 name 與age 在指定的建構函式裡面已經存在,當name name 這個語句執行的時候,如果jvm 在該方法內能尋找到該變數,則不會去尋找成員變數,那麼要想指定給成員變數或物件的屬性進行初始化賦值,那麼必須指定name 是成員屬性。1...

Java中的關鍵字

abstract 抽象的 continue 繼續 for 當 的時候 new 新建 switch 轉換 assert 斷言 default 預設 if 如果 package 打包 synchronized 同步 boolean 布林 do 做 goto 跳轉到 private 私有的 this 這個...

Java中的關鍵字

a bstract 表明類或者成員方法具有抽象屬性 assert 用來進行程式除錯 boolean 基本資料型別之一,布林型別 break 提前跳出乙個塊 byte 基本資料型別之一,位元組型別 case 用在switch語句之中,表示其中的乙個分支 catch 用在異常處理中,用來捕捉異常 cha...