java中this關鍵字
Ⅰ java中的this關鍵字請舉個具體的例子來說明用它的好處
this
關鍵字表示的是當前類
比如
this.name
是指當前類的name屬性,有些時候可以用於區分同名屬性,如你在類里有個屬性為name,有個方法里也有個屬性叫name,你在該方法里使用this.name是指類屬性,直接使用name則是指方法的name屬性,這樣不會混淆;
可以用this.method()調用本類的method()方法;
可以調用父類的方法和屬性,比如你繼承了某個類,在該類中你不能直接看到父類的方法和屬性,你需要打開父類去查看他的方法和屬性,這樣比較麻煩,你可以直接用this.的方式查看到父類的方法和屬性;
使用this關鍵字調用類方法和屬性通常比較方便,比如你的類比較長,有時,你想調用某個方法或屬性,你又忘了它的名稱,直接使用this.的方式直接就能找到;
還有一點要注意,比如你有個類包含一個內部類,你在內部類使用this,則是指調用內部類的方法和屬性,此時this不能調用到外部類的方法及屬性。
Ⅱ java 的this的運用
在java中,this關鍵字有很多種用法。 在java中,這是一個引用當前對象的引用變數。
java this關鍵字的用法如下:
this關鍵字可用來引用當前類的實例變數。
this關鍵字可用於調用當前類方法(隱式)。
this()可以用來調用當前類的構造函數。
this關鍵字可作為調用方法中的參數傳遞。
this關鍵字可作為參數在構造函數調用中傳遞。
this關鍵字可用於從方法返回當前類的實例。
建議:如果你是java初學者,只學習 this 關鍵字的前三個用法就可以了。
更詳細可以查詢一些教程,例如:https://www.yii.com/java/this-keyword.html
Ⅲ JAVA中this關鍵字。怎麼辦
"例如你叫mama210217,不熟悉的人打招呼的時候,就叫"mama210217你好"
要是彼此都熟悉了,叫"hi"就是對你打招呼呢,hi就知道是你了。this差不多是這意思吧"
Ⅳ Java中怎麼使用this關鍵字什麼時候可以使用
當你想要引用當前對象的某種東西,比如當前對象的某個方法,或當前對象的某個成員,你便可以利用this來實現這個目的。
比如說吃飯這個方法它是由上帝來定義的,世界上所有的人來執行。吃飯這個行為發生的時候,主體就是在吃飯的這個人,也就是要有人執行吃飯這個行為。 有時候我們需要在一個行為(方法)里,能明確知道這個行為是誰來執行的,確切的說就是我要知道誰在吃飯。
function eatSomthing() { this.eat }
在編程語言裡面每一個定義的方法里,都會有一個this關鍵字,這個this關鍵不是由在那兒定義來決定的,而是由誰來執行的決定的。這是判斷this關鍵。
his表示的對像,是這個方法活動的"上下文"。所謂的"上下文",也就是表示當前的這些代碼的活動范圍,當前的活動(代碼的執行)在那個對像上的發生的意思。
吃飯這個活動,是在張三這個對像上發生的,則張三是吃飯的下下文。在body里去查找的div元素,則body是這個查找活動的上下文。那這個this,就是這個方法運行活動的范圍了。
方法里this當前這個方法運行的上下文,但上下文不僅限於是this(就是整體與個體的區別)。
Ⅳ java 中的this關鍵字的幾種用法
當成員變數和局部變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。(this是當前對象自己)
代碼中的showtest(this),這里的this就是把當前實例化的p傳給了showtest()方法,從而就運行了。
Ⅵ 對於java中this關鍵字的理解
this關鍵字可以簡單的理解為,誰調用this所在的方法,this就是誰。
類的構造函數與getter、setter方法常用到this關鍵字(JavaBean)
JavaBean是一種可重用的Java組件,它可以被Applet、Servlet、SP等Java應用程序調用.也可以可視化地被Java開發工具使用。它包含屬性(Properties)、方法(Methods)、事件(Events)等特性。
public class Person {
//==========靜態屬性===========
//--想學編程的可以來我這看看----
private String name; //姓名
private int age; //年齡
private String gender; //性別
//==========動態行為===========
public void readBook(String book) {
System.out.println("reading " + book);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;//this.name就是上面的private String name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
官方定義
this 是自身的一個對象,代表對象本身,可以理解為:指向對象本身的一個指針。
this 的用法在 Java 中大體可以分為3種:
1.普通的直接引用
這種就不用講了,this 相當於是指向當前對象本身。
2.形參與成員名字重名,用 this 來區分:
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年齡:"+age);}
public int GetAge(int age){
this.age = age;
return this.age;
}
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}
希望對您有所幫助!~
Ⅶ java 中this關鍵字的作用是什麼
this在java
中的作用和它的詞義很接近,在函數內部就是這個函數所屬的對象的引用變數.
Ⅷ java裡面this關鍵字到底都啥用呢
this其實可以說是一個隱形指針。他所指向的是本類中的成員變數或者方法。。在你的構造方法中你用了this.age=22其實意思就是
本類中的成員變數age給他賦值。
Ⅸ java this關鍵字問題
一、this關鍵字主要有三個應用:
(1)this調用本類中的屬性,也就是類中的成員變數;
(2)this調用本類中的其他方法;
(3)this調用本類中的其他構造方法,調用時要放在構造方法的首行。
Public Class Student {
String name; //定義一個成員變數name
private void SetName(String name) { //定義一個參數(局部變數)name
this.name=name; //將局部變數的值傳遞給成員變數
}
}
應用一:引用成員變數
如上面這段代碼中,有一個成員變數name,同時在方法中有一個形式參數,名字也是name,然後在方法中將形式參數name的值傳遞給成員變數name,雖然我們可以看明白這個代碼的含義,但是作為Java編譯器它是怎麼判斷的呢?到底是將形式參數name的值傳遞給成員變數name,還是反過來將成員變數name的值傳遞給形式參數name呢?也就是說,兩個變數名字如果相同的話,那麼Java如何判斷使用哪個變數?此時this這個關鍵字就起到作用了。this這個關鍵字其代表的就是對象中的成員變數或者方法。也就是說,如果在某個變數前面加上一個this關鍵字,其指的就是這個對象的成員變數或者方法,而不是指成員方法的形式參數或者局部變數。為此在上面這個代碼中,this.name代表的就是對象中的成員變數,又叫做對象的屬性,而後面的name則是方法的形式參數,代碼this.name=name就是將形式參數的值傳遞給成員變數。這就是上面這個代碼的具體含義。
一般情況下,在Java語言中引用成員變數或者成員方法都是以對象名.成員變數或者對象名.成員方法的形式。不過有些程序員即使在沒有相同變數的時候,也喜歡使用this.成員變數的形式來引用變數,這主要是從便於代碼的閱讀考慮的。一看到這個this關鍵字就知道現在引用的變數是成員變數或者成員方法,而不是局部變數。這無形中就提高了代碼的閱讀性。不過話說回來,這是this關鍵字在Java語言中的最簡單的應用。從這個應用中,我們可以看出this關鍵字其代表的就是對象的名字。
其實如果是局部變數的話,也是相同的道理。如在上面的代碼中,name不是形式參數,而是一個局部變數。此時Java也會遇到相同的疑惑,即變數名name代表的到底是局部變數還是形式參數?name=name到底代表的是什麼含義?根據局部變數的作用域,在方法內部,如果局部變數與成員變數同名的話,那麼是以局部變數為准。可是在name=name這個賦值語句中,將局部變數的值賦值給自己,顯然並不是很合適。根據代碼的含義,本來的意思應該是將局部變數賦值給成員變數。為了更清晰的表達這個含義,為此最好採用如下的書寫格式this.name=name。這里的this關鍵字含義就是對象名student,為此this.name就表示student.name。
應用二:調用類的構造方法
public class Student { //定義一個類,類的名字為student。
public Student() { //定義一個方法,名字與類相同故為構造方法
this(「Hello!」);
}
public Student(String name) { //定義一個帶形式參數的構造方法
}
}
this關鍵字除了可以調用成員變數之外,還可以調用構造方法。在一個Java類中,其方法可以分為成員方法和構造方法兩種。構造方法是一個與類同名的方法,在Java類中必須存在一個構造方法。如果在代碼中沒有顯示的體現構造方法的話,那麼編譯器在編譯的時候會自動添加一個沒有形式參數的構造方法。這個構造方法跟普通的成員方法還是有很多不同的地方。如構造方法一律是沒有返回值的,而且也不用void關鍵字來說明這個構造方法沒有返回值。而普通的方法可以有返回值、也可以沒有返回值,程序員可以根據自己的需要來定義。不過如果普通的方法沒有返回值的話,那麼一定要在方法定義的時候採用void關鍵字來進行說明。其次構造方法的名字有嚴格的要求,即必須與類的名字相同。也就是說,Java編譯器發現有個方法與類的名字相同才把其當作構造方法來對待。而對於普通方法的話,則要求不能夠與類的名字相同,而且多個成員方法不能夠採用相同的名字。在一個類中可以存在多個構造方法,這些構造方法都採用相同的名字,只是形式參數不同。Java語言就憑形式參數不同來判斷調用那個構造方法。
在上面這段代碼中,定義了兩個構造方法,一個帶參數,另一個沒有帶參數。構造方法都不會有返回值,不過由於構造方法的特殊性,為此不必要在構造方法定義時帶上void關鍵字來說明這個問題。在第一個沒有帶參數的構造方法中,使用了this(「Hello!」)這句代碼,這句代碼表示什麼含義呢?在構造方法中使this關鍵字表示調用類中的構造方法。如果一個類中有多個構造方法,因為其名字都相同,跟類名一致,那麼這個this到底是調用哪個構造方法呢?其實,這跟採用其他方法引用構造方法一樣,都是通過形式參數來調用構造方法的。如上例中,this關鍵字後面加上了一個參數,那麼就表示其引用的是帶參數的構造方法。如果現在有三個構造方法,分別為不帶參數、帶一個參數、帶兩個參數。那麼Java編譯器會根據所傳遞的參數數量的不同,來判斷該調用哪個構造方法。從上面示例中可以看出,this關鍵字不僅可以用來引用成員變數,而且還可以用來引用構造方法。
不過如果要使用這種方式來調用構造方法的話,有一個語法上的限制。一般來說,利用this關鍵字來調用構造方法,只有在無參數構造方法中第一句使用this調用有參數的構造方法。否則的話,翻譯的時候,就會有錯誤信息。這跟引用成員變數不同。如果引用成員變數的話,this關鍵字是沒有位置上的限制的。如果不熟悉這個限制的話,那麼還是老老實實的採用傳統的構造方法調用方式為好。雖然比較麻煩,但是至少不會出錯。
應用三:返回對象的值
this關鍵字除了可以引用變數或者成員方法之外,還有一個重大的作用就是返回類的引用。如在代碼中,可以使用return this,來返回某個類的引用。此時這個this關鍵字就代表類的名稱。如代碼在上面student類中,那麼代碼代表的含義就是return student。可見,這個this關鍵字除了可以引用變數或者成員方法之外,還可以作為類的返回值,這才是this關鍵字最引人注意的地方。
Ⅹ java中this的關鍵字用法是什麼
Java關鍵字this只能用於方法方法體內。當一個對象創建後,Java虛擬機(JVM)就會給這個對象分配一個引用自身的指針,這個指針的名字就是 this。
this主要要三種用法:
表示對當前對象的引用。
表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分。這是第一種用法的特例,比較常用。
用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。注意:只能引用一個構造方法且必須位於開始。
this不能用在static方法中!有人給static方法的定義:沒有this的方法。