Java的OO與多型

findumars發表於2013-08-09

this的用法

class Banana { void f(int i) {} }
Banana a = new Banana(), b = new Banana();
a.f(1);
b.f(2);
若只有一個名叫f()的方法,它怎樣才能知道自己是為a還是為b呼叫的呢?
為了能用簡便的、物件導向的語法來書寫程式碼——亦即“將訊息發給物件”,編譯器為我們完成了一些幕後工作。其中的祕密就是第一個自變數傳遞給方法f(),而且那個自變數是準備操作的那個物件的控制程式碼。所以前述的兩個方法呼叫就變成了下面這樣的形式:
Banana.f(a,1);
Banana.f(b,2);

this關鍵字只能用於那些特殊的類——需明確使用當前物件的控制程式碼。例如,假若您希望將控制程式碼返回給當前物件,那麼它經常在return語句中使用。
public class Leaf {
private int i = 0;
Leaf increment() {
i++;
return this;
}
}

相關文章