黑马程序员技术交流社区

标题: return this 对象调用问题 [打印本页]

作者: 庄星睿    时间: 2012-6-10 19:54
标题: return this 对象调用问题
看了一个程序,里面有一段大致是这个意思,刚一看差点蒙了
  1. class ReturnTest
  2. {

  3. public int age;
  4. public ReturnTest grow()
  5. {
  6. age++;
  7. return this;
  8. }
  9. public static void main(String[] args)
  10. {

  11. ReturnTest rt=new ReturnTest();
  12. rt.grow()
  13. .grow()
  14. .grow(); //对象的多次调用
  15. System.out.println("rt的age Fileld是:"+rt.grow().age);
  16. }
  17. }
复制代码
结果是4
还得好好复习一下this调用那块啊,一遇到没见过的就挂了,唉

作者: 孙峰    时间: 2012-6-10 20:41
rt.grow() //创建一个本来的对象:rt,并且调用grow方法,age++,变成了1,并用 return this 返回改对象
.grow()    //返回后的对象再次调用, age 变成了2,
.grow(); //  age 变成了3.

如果打印语句是:
System.out.println("rt的age Fileld是:"+rt.age);  则输出结果:是3。


原程序中:System.out.println("rt的age Fileld是:"+rt.grow().age); 在打印的时候又一次的调用,所以 :结果是4.

还可以再次调用:System.out.println("rt的age Fileld是:"+rt.grow().grow().age);  那么结果就是 5.


this 的应用;当定义类中的函数时,该函数中可以用“this” 指调用该函数的对象。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2