1. 當成員變數和區域性變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。(this是當前物件自己)
如:publicclasshello
publicstaticvoidmain(string args) }
結果為:
s = helloworld!
1 -> this.s = hello
2 -> this.s = helloworld!
s=helloworld!
在這個例子中,建構函式hello中,引數s與類hello的成員變數s同名,這時如果直接對s進行操作則是對引數s進行操作。若要對類hello的成員變數s進行操作就應該用this進行引用。執行結果的第一行就是直接對建構函式中傳遞過來的引數s進行列印結果; 第二行是對成員變數s的列印;第三行是先對成員變數s賦傳過來的引數s值後再列印,所以結果是helloworld!而第四行是主函式中直接列印類中的成員變數的值,也可以驗證成員變數值的改變。
2.把自己當作引數傳遞時,也可以用this.(this作當前引數進行傳遞)
classa
publicvoidprint() }
classb
publicvoid
() }
publicclasshelloa }
結果為:helloaa from a!
helloab from b!
helloaa from a!
helloaa from a!
helloab from b!
在這個例子中,物件a的建構函式中,用new b(this)把物件a自己作為引數傳遞給了物件b的建構函式。
3. 有時候,我們會用到一些內部類和匿名類,如事件處理。當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。如:
publicclasshellobcatch(interruptedexception ie) }
}};
// 注意這裡有分號
thread.start(); }
publicvoidrun()
publicstaticvoidmain(string args)throwsexception }
在上面這個例子中, thread 是乙個匿名類物件,在它的定義中,它的 run 函式裡用到了外部類的 run 函式。這時由於函式同名,直接呼叫就不行了。這時有兩種辦法,一種就是把外部的 run 函式換乙個名字,但這種辦法對於乙個開發到中途的應用來說是不可取的。那麼就可以用這個例子中的辦法用外部類的類名加上 this 引用來說明要呼叫的是外部類的方法 run。
4. 在建構函式中,通過this可以呼叫同一類中別的建構函式。如:
publicclassthistest
thistest()
publicstaticvoidmain(string args) }
為了更確切的說明
this
用法,另外乙個例子為:
publicclassthistest
thistest(string str,intage)
publicstaticvoidmain(string args) }
結果為:
this
測試成功 25
值得注意的是:
1:在構造呼叫另乙個建構函式,呼叫動作必須置於最起始的位置。
2:不能在建構函式以外的任何函式內呼叫建構函式。
3:在乙個建構函式內只能呼叫乙個建構函式。
5.this同時傳遞多個引數。
publicclasstestclass
voidseeit()
publicstaticvoidmain(string args) }
結果為:
9 10
**中的showtest(this),這裡的this就是把當前例項化的p傳給了showtest()方法,從而就執行了。
Java中this關鍵字的用法
1.當成員變數和區域性變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。this是當前物件自己 如 publicclasshello publicstaticvoidmain string args 結果為 s helloworld 1 this.s hello 2 this.s...
java中this關鍵字的用法
1.this關鍵字只能在方法內部使用,表示對 呼叫方法的那個物件 的引用。2.this關鍵字的使用 只有需要明確指出對當前物件的引用時,才需要用該關鍵字,不要在不必要的地方使用,會造成混亂。eg public class user 例如,乙個外部的工具方法,實現了給蘋果削皮的功能 先傳入乙個蘋果,再...
java中static關鍵字用法
static關鍵字 一 用法 1 static關鍵字表示靜態。能與屬性,方法,塊,內部類等一起使用。2 static修飾屬性和方法時,可以直接通過類名.屬性或類名.方法來訪問。3 靜態變數 乙個類中,靜態的變數只分配一塊記憶體空間。多個例項物件共享該記憶體空間。靜態的變數在類載入的時候,被初始化。也...