我閱讀和段落「在Java編程思想」裏this
關鍵字進行了說明,例如如何理解什麼方法時,「返回這個」正在恢復使用
public class Leaf {
int i = 0;
Leaf increment() {
i++;
return this;
}
void print() {
System.out.println("i = " + i);
}
public static void main(String[] args) {
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
}
下面筆者使用我不知道是什麼,如何瞭解increment()
方法返回的內容?作者解釋說,它返回對當前對象的引用。這是否意味着x.increment()
聲明返回一種x
(我知道什麼是參考意思)?並在執行第一個x.increment()
後開始對賬單x.increment().increment().increment().print();
,成爲x.increment().increment().print();
?
這聽起來符合邏輯,但我不確定是否理解正確。
它返回當前實例。當您構造一個對象並從中調用該方法時,它將返回您正在調用方法的對象,從而允許您調用更多方法 –
請記住,「當前對象」可能是「Leaf」的一個子類。所以在這種情況下,它返回一個'Leaf',但通常它返回一個'Leaf'或'Leaf'的子類(注意'Leaf'不是'final'類)。 – markspace
http://en.wikipedia.org/wiki/Method_chaining – Sirko