Я читаю «Мышление в 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().increment().increment().print();
после выполнения первых x.increment()
, стала x.increment().increment().print();
?
Это звучит логично для меня, но я не уверен, правильно ли я это понимаю.
Он возвращает этот текущий экземпляр. Когда вы создаете объект и вызываете этот метод из него, он возвращает объект, из которого вы вызываете метод, из которого вы можете вызвать больше методов. Fn. –
Помните, что «текущий объект» может быть подклассом «Лист». Таким образом, в этом случае он возвращает «Лист», но в целом он возвращает «Лиф» или подкласс «Листа» (обратите внимание, что «Лист» не является «финальным» классом). – markspace
http://en.wikipedia.org/wiki/Method_chaining – Sirko