this 關(guān)鍵字

this 關(guān)鍵字用來表示當前對象本身撩独,或當前類的一個實例寺晌,通過 this 可以調(diào)用本對象的所有方法和屬性脖母。
例如:

public class Demo{ public int x = 10; public int y = 15; 
public void sum()
{ // 通過 this 點取成員變量 int z = this.x + this.y; 
System.out.println("x + y = " + z); } 
public static void main(String[] args) { Demo obj = new Demo(); obj.sum(); } }
運行結(jié)果:
x + y = 25

上面的程序中,obj 是 Demo 類的一個實例饮戳,this 與 obj 等價绪囱,執(zhí)行 int z = this.x + this.y;,就相當于執(zhí)行 int z = obj.x + obj.y;莹捡。

注意:this 只有在類實例化后才有意義。

使用this區(qū)分同名變量

成員變量與方法內(nèi)部的變量重名時扣甲,希望在方法內(nèi)部調(diào)用成員變量篮赢,這時候只能使用this,
例如:

public class Demo{     public String name;     public int age;       
public Demo(String name, int age){         this.name = name;         this.age = age;     }       
public void say(){         System.out.println("網(wǎng)站的名字是" + name + "琉挖,已經(jīng)成立了" + age + "年");     }        
public static void main(String[] args) {         Demo obj = new Demo("大帥哥", 3);         obj.say();     } }
運行結(jié)果:
網(wǎng)站的名字是大帥哥启泣,已經(jīng)成立了3年

形參的作用域是整個方法體,是局部變量示辈。
在Demo()中寥茫,形參和成員變量重名,如果不使用this矾麻,訪問到的就是局部變量name和age纱耻,而不是成員變量芭梯。
在 say() 中,我們沒有使用 this弄喘,因為成員變量的作用域是整個實例玖喘,當然也可以加上 this:public void say(){ System.out.println("網(wǎng)站的名字是" + this.name + ",已經(jīng)成立了" + this.age + "年"); }
Java 默認將所有成員變量和成員方法與 this 關(guān)聯(lián)在一起蘑志,因此使用 this 在某些情況下是多余的累奈。

作為方法名來初始化對象

也就是相當于調(diào)用本類的其它構(gòu)造方法,它必須作為構(gòu)造方法的第一句急但。
示例如下:

public class Demo{ public String name; public int age; public Demo(){ this("帥哥", 3); } 
public Demo(String name, int age){ this.name = name; this.age = age; } 
public void say(){ System.out.println("網(wǎng)站的名字是" + name + "澎媒,已經(jīng)成立了" + age + "年"); } 
public static void main(String[] args) { Demo obj = new Demo(); obj.say(); } }
運行結(jié)果:
網(wǎng)站的名字是帥哥,已經(jīng)成立了3年
值得注意的是:

在構(gòu)造方法中調(diào)用另一個構(gòu)造方法波桩,調(diào)用動作必須置于最起始的位置戒努。

不能在構(gòu)造方法以外的任何方法內(nèi)調(diào)用構(gòu)造方法。

在一個構(gòu)造方法內(nèi)只能調(diào)用一個構(gòu)造方法突委。

上述代碼涉及到方法重載柏卤,即Java允許出現(xiàn)多個同名方法,只要參數(shù)不同就可以匀油。

作為參數(shù)傳遞

需要在某些完全分離的類中調(diào)用一個方法缘缚,并將當前對象的一個引用作為參數(shù)傳遞時。
例如:

public class Demo
{ public static void main(String[] args){ B b = new B(new A()); } } class A{ public A(){ new B(this).print(); // 匿名對象 } 
public void print(){ System.out.println("Hello from A!"); } } class B{ A a; public B(A a){ this.a = a; } 
public void print() { a.print(); System.out.println("Hello from B!"); } }
運行結(jié)果:
Hello from A!
Hello from B!

匿名對象就是沒有名字的對象敌蚜。如果對象只使用一次桥滨,就可以作為匿名對象,代碼中 new B(this).print(); 等價于 ( new B(this) ).print();弛车,先通過 new B(this) 創(chuàng)建一個沒有名字的對象齐媒,再調(diào)用它的方法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纷跛,一起剝皮案震驚了整個濱河市喻括,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贫奠,老刑警劉巖唬血,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異唤崭,居然都是意外死亡拷恨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門谢肾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腕侄,“玉大人,你說我怎么就攤上這事∶岣埽” “怎么了微姊?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拌汇。 經(jīng)常有香客問我柒桑,道長,這世上最難降的妖魔是什么噪舀? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任魁淳,我火速辦了婚禮,結(jié)果婚禮上与倡,老公的妹妹穿的比我還像新娘界逛。我一直安慰自己,他們只是感情好纺座,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布息拜。 她就那樣靜靜地躺著,像睡著了一般净响。 火紅的嫁衣襯著肌膚如雪少欺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天馋贤,我揣著相機與錄音赞别,去河邊找鬼。 笑死配乓,一個胖子當著我的面吹牛仿滔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播犹芹,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼崎页,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腰埂?” 一聲冷哼從身側(cè)響起飒焦,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屿笼,沒想到半個月后荒给,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡刁卜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了曙咽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛔趴。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖例朱,靈堂內(nèi)的尸體忽然破棺而出孝情,到底是詐尸還是另有隱情鱼蝉,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布箫荡,位于F島的核電站魁亦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏羔挡。R本人自食惡果不足惜洁奈,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绞灼。 院中可真熱鬧利术,春花似錦、人聲如沸低矮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽军掂。三九已至轮蜕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝗锥,已是汗流浹背跃洛。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玛追,地道東北人税课。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像痊剖,于是被迫代替她去往敵國和親韩玩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 涵義 this關(guān)鍵字是一個非常重要的語法點。毫不夸張地說,不理解它的含義弦讽,大部分開發(fā)任務都無法完成丢早。 首先,thi...
    許先生__閱讀 555評論 0 4
  • this 關(guān)鍵字 含義 this都有一個共同點:它總是返回一個對象戈钢。this就是屬性或方法“當前”所在的對象 使用...
    holy俊輝閱讀 536評論 0 0
  • 對于this指向的理解中,有這樣一種說法:誰調(diào)用它,this就指向誰彪蓬。 一、執(zhí)行上下文 在這之前捺萌,我們需要來回顧一...
    threetowns閱讀 463評論 0 0
  • 終于鼓起勇氣開始看傳習錄了档冬,這是一本向往了很久又遲遲不敢開坑的書。一來是自己古文底子并沒那么扎實,看古文比較吃力酷誓,...
    HR楠不倒閱讀 773評論 1 1
  • 專欄已經(jīng)更新了四十多個概念披坏,這些概念是讓自己更值錢的重要武器。 這是未來通往財富自由之路的武器庫盐数,對照下圖棒拂,檢驗對...
    舒_展閱讀 582評論 1 1