1樓:biubiu哩
當你想要引用當前物件的某種東西,比如當前物件的某個方法,或當前物件的某個成員,你便可以利用this來實現這個目的。
比如說吃飯這個方法它是由上帝來定義的,世界上所有的人來執行。吃飯這個行為發生的時候,主體就是在吃飯的這個人,也就是要有人執行吃飯這個行為。 有時候我們需要在一個行為(方法)裡,能明確知道這個行為是誰來執行的,確切的說就是我要知道誰在吃飯。
function eatsomthing()
在程式語言裡面每一個定義的方法裡,都會有一個this關鍵字,這個this關鍵不是由在那兒定義來決定的,而是由誰來執行的決定的。這是判斷this關鍵。
his表示的對像,是這個方法活動的"上下文"。所謂的"上下文",也就是表示當前的這些**的活動範圍,當前的活動(**的執行)在那個對像上的發生的意思。
吃飯這個活動,是在張三這個對像上發生的,則張三是吃飯的下下文。在body裡去查詢的div元素,則body是這個查詢活動的上下文。那這個this,就是這個方法執行活動的範圍了。
方法裡this當前這個方法執行的上下文,但上下文不僅限於是this(就是整體與個體的區別)。
java中this關鍵字用法
2樓:匿名使用者
一、this關鍵字主要有三個應用:
(1)this呼叫本類中的屬性,也就是類中的成員變數;
(2)this呼叫本類中的其他方法;
3樓:匿名使用者
1. 當成員變數和區域性變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。(this是當前物件自己)如:
public class hello public static void main(string args) } 結果為:s = helloworld!1 -> this.
s = hello2 -> this.s = helloworld!s=helloworld!
在這個例子中,建構函式hello中,引數s與類hello的成員變數s同名,這時如果直接對s進行操作則是對引數s進行操作。若要對類hello的成員變數s進行操作就應該用this進行引用。執行結果的第一行就是直接對建構函式中傳遞過來的引數s進行列印結果; 第二行是對成員變數s的列印;第三行是先對成員變數s賦傳過來的引數s值後再列印,所以結果是helloworld!
而第四行是主函式中直接列印類中的成員變數的值,也可以驗證成員變數值的改變。
2.把自己當作引數傳遞時,也可以用this.(this作當前引數進行傳遞)class a public void print() }class b public void print() }public class helloa }結果為:helloaa from a!
helloab from b!helloaa from a!helloaa from a!
helloab from b! 在這個例子中,物件a的建構函式中,用new b(this)把物件a自己作為引數傳遞給了物件b的建構函式。
3. 有時候,我們會用到一些內部類和匿名類,如事件處理。當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。
如:public class hellob catch (interruptedexception ie) {}}}}; // 注意這裡有分號thread.start();}public void run() public static void main(string args) throws exception } 在上面這個例子中, thread 是一個匿名類物件,在它的定義中,它的 run 函式裡用到了外部類的 run 函式。
這時由於函式同名,直接呼叫就不行了。這時有兩種辦法,一種就是把外部的 run 函式換一個名字,但這種辦法對於一個開發到中途的應用來說是不可取的。那麼就可以用這個例子中的辦法用外部類的類名加上 this 引用來說明要呼叫的是外部類的方法 run。
4. 在建構函式中,通過this可以呼叫同一類中別的建構函式。如:public class thistest thistest() public static void main(string args) } 為了更確切的說明this用法,另外一個例子為:
public class thistest thistest(string str,int age) public static void main(string args) } 結果為:this測試成功25值得注意的是:
(1):在構造呼叫另一個建構函式,呼叫動作必須置於最起始的位置。
(2):不能在建構函式以外的任何函式內呼叫建構函式。
(3):在一個建構函式內只能呼叫一個建構函式。
5.this同時傳遞多個引數。public class testclass void seeit() public static void main(string args) } 結果為:9 10 **中的showtest(this),這裡的this就是把當前例項化的p傳給了showtest()方法,從而就執行了。
4樓:匿名使用者
this 表示本類 this.方法或者屬性 表示自身的方法或屬性
5樓:匿名使用者
this表示最近你使用的物件。。。
6樓:匿名使用者
this 代表當前物件
7樓:紹澍鄢含蕊
按執行步驟
:首先來看main
aa1=new
a("a1");
//建立一個a類的物件,a1為引用。此時呼叫建構函式
初始化;
a1.func2();
//以a1呼叫func2()
aa2=new
a("a2");
//意義同a1
this.func1();
//this表示a1,因為a1.func2();
這裡的意思是以a1呼叫func1();這裡是第一次輸出;
a2.func1();
//以a2呼叫func1(),第二次輸出
最後返回main(),完畢。
java中this的關鍵字用法是什麼?
8樓:
java關鍵字baithis只能用於方法
du方法體內。當一個物件建立後,zhijava虛擬機器(daojvm)就會給這個物件分配一專個引用自身的指屬針,這個指標的名字就是 this。
this主要要三種用法:
表示對當前物件的引用。
表示用類的成員變數,而非函式引數,注意在函式引數和成員變數同名是進行區分。這是第一種用法的特例,比較常用。
用於在構造方法中引用滿足指定引數型別的構造器(其實也就是構造方法)。注意:只能引用一個構造方法且必須位於開始。
this不能用在static方法中!有人給static方法的定義:沒有this的方法。
Split怎麼使用,Java中split的用法
這個很有用 j a中split的用法 那是字串分割的方法比如有個字串是這樣的 string str boo and foo 呼叫它的方法 str.split 意思是以 分割上面的字串。返回一個字串陣列,陣列裡面就是 string split char c 該方法用於將字串按分隔符c分割 返回stri...
怎麼用java實現在tt檔案中根據關鍵字查詢資訊
個人愚見bai,還望指教 1 把txt檔案 du封裝成file物件 zhi 2 如果是純文字可以dao用filereader如果不內是的話可 public static void readtxtfile string filepath,string key read.close else catch...
java使用while和,Java。使用while和dowhile迴圈解決。從鍵盤上接收一批整數,比較並輸出其中的最大
class zhidao public void input public static void main string args java 在鍵盤上接收一批數字,比較並輸出其中的最大值和最小值,輸入0時結束迴圈。import java.util.arraylist import java.uti...