A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庄星睿 中级黑马   /  2012-6-10 19:54  /  1241 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了一个程序,里面有一段大致是这个意思,刚一看差点蒙了
  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调用那块啊,一遇到没见过的就挂了,唉

评分

参与人数 1黑马币 +20 收起 理由
黄奕豪 + 20 赞一个!

查看全部评分

1 个回复

倒序浏览
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” 指调用该函数的对象。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马