關于Return this的疑問
public?class?ThisDemo?{ int?number; ????ThisDemo?increment(){ ?????????number++; ?????????return?this; ????}?? ??private?void?print(){ ?????????System.out.println("number="+number); ????} ????public?static?void?main(String[]?args)?{ ????????ThisDemo?tt=new?ThisDemo(); ?????????tt.increment().increment().increment().print(); ????} }
(1)關于本題中的return this是return number嗎??
? ? ? ? return this 一般是用來返回什么的 ?
(2)tt.increment().increment().increment().print();
? ? ? ? 方法是從左到右調用嗎?請大神幫我解讀一下;
2015-12-13
關于第一個提問:
return this 并不是 return number
ThisDemo tt = new ThisDemo();
tt.increment() 這個方法執行完畢,會把tt對象再次返回
第二個提問:
tt.increment().increment().increment().print();
執行順序是從右往左的,因為每次調用increment都返回對象本身,所以可以實現鏈式調用。
2022-03-23
不錯不錯,講的很清晰易懂在這里兩者都可以,只是個人習慣吧
2016-03-27
一樓說的返回對象是什么意思?。渴菍ο笤儆梅椒ㄟ\行一次嗎?求解
2015-12-13
頂樓上,補充一下哈,return this一般用在類中非靜態方法的末尾,來返回類的當前對象,因為非靜態方法是屬于對象的,而不是類的(樓主注意區分類和對象的區別哈),所以,為了之后的繼續調用當前對象,所以 return this,將對象返回