Java中怎麼使用this關鍵字?什麼時候可以使用

2021-03-19 18:26:07 字數 3404 閱讀 1953

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...