談談 Java 中 this 的使用

2021-04-02 01:56:49 字數 1185 閱讀 6177

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

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

public class a

public static void main(string args)

} 執行結果:

s = helloworld!

1 -> this.s = hello

2 -> this.s = helloworld!

在這個例子中,建構函式a中,引數s與類a的變數s同名,這時如果直接對s進行操作則是對引數s進行操作。若要對類a的變數s進行操作就應該用this進行引用。執行結果的第一行就是直接對引數s進行列印結果;後面兩行分別是對物件a的變數s進行操作前後的列印結果。

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。

談談Java中的多型

1.物件導向的程式設計有三打特點 封裝,繼承和多型 那麼什麼是多型呢?允許我們對物件進行不同的操作,但具體的動作卻取決於物件的型別 這句話怎麼理解呢?以前大家都知道程式在編譯的時候,什麼函式對哪個物件執行什麼操作都已經定下來了,換句話說叫做靜態編譯,多型是動態編譯,什麼是動態編譯?動態編譯就是在程式...

java 談談工作中遇到的問題

時間過得很快,轉眼之間,工作已經一年多了,這一年了看到了好多,也想了好多。想想自己經歷的公司,發現公司真的很有意思。不知道為什麼,感覺公司裡的 怎麼好多都讓人想發火呢,不禁讓我感覺到,中國好多it公司真的不是靠技術吃飯的。我是做web開發的,軟體開發中有經典的mvc思想,剛開始接觸時,感覺真的很美。...

java中this的使用

1.使用this來訪問欄位及方法 在方法及構造方法中,可以使用this來訪問物件的字段和方法 例如,方法sayhello中使用name和使用this.name是相同的。即 void sayhello void sayhello 的含義是相同的。2.使用this解決區域性變數與字段同名的問題 使用th...