第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取調(diào)用方法的實(shí)例

如何獲取調(diào)用方法的實(shí)例

拉丁的傳說 2018-07-26 09:10:30
class A{  void Method(){    //do sth.  }}對于上面這個類,我如何知道 調(diào)用method 方法的 對象是哪個???如 我創(chuàng)建了兩個對象A a1=new A();a1.Method();A a2=new  A();a2.Method();我在Method方法里如何知道是a1調(diào)用的 還是a2調(diào)用的呢?也就是說 ,我想在Method里面 獲取 調(diào)用該方法的實(shí)例對象,不知道各位看管聽明白了沒
查看完整描述

2 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個贊

你可以在方法體里用this獲取到當(dāng)前對象,但是你無法獲取到當(dāng)前對象的“變量名”。舉個例子很容易明白:

class A
{
  public void Method()
   {
    //this 代表當(dāng)前實(shí)例  }
}

在Method()中,this代表當(dāng)前實(shí)例,當(dāng)前實(shí)例是堆上的一個唯一的對象,而在棧上可能有99個變量都指向這個對象。

A a1 = new A();
A a2 = a1;
A a3 = a1;
A a4 = a1;
...
A a99 = a1;
a99.Method();

無論是哪個變量調(diào)用Method方法,它們指向的堆上的同一個實(shí)例,因此對于Method來說,它們沒有不同,因此在Method中的this也沒有不同。再從另外一方面來反證,假設(shè)你可以輸出變量名,那么請問這句的輸出是什么:

new A().Method();


查看完整回答
反對 回復(fù) 2018-07-30
  • 2 回答
  • 0 關(guān)注
  • 636 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號