问答详情
源自:7-4 Java 中的 this 关键字

关于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();

        方法是从左到右调用吗?请大神帮我解读一下;

提问者:梁XX 2015-12-13 21:17

个回答

  • 慕男婶
    2015-12-13 21:24:35
    已采纳

    关于第一个提问:

    return this 并不是 return number

    ThisDemo tt = new ThisDemo();

    tt.increment() 这个方法执行完毕,会把tt对象再次返回

    第二个提问:

    tt.increment().increment().increment().print();

    执行顺序是从右往左的,因为每次调用increment都返回对象本身,所以可以实现链式调用。

  • 慕移动9181930
    2022-03-23 02:57:36

    不错不错,讲的很清晰易懂

  • 君梦了无痕
    2016-03-27 16:06:34

    一楼说的返回对象是什么意思啊?是将对象再用方法运行一次吗?求解

  • 子木李
    2015-12-13 21:29:55

    顶楼上,补充一下哈,return this一般用在类中非静态方法的末尾,来返回类的当前对象,因为非静态方法是属于对象的,而不是类的(楼主注意区分类和对象的区别哈),所以,为了之后的继续调用当前对象,所以 return this,将对象返回