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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sun_jun 中级黑马   /  2014-2-18 09:32  /  1490 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
      int a;
     public Demo inc()
       {
          this.a++;
          return this;
         }
}
public class  IncDemo()
{
     public static void main(String[] args)
     Demo D  = new Demo();
    System.out.println(V.inc().inc().inc().inc().a);
}
对于新人来学特别是这句 :System.out.println(D.inc().inc().inc().inc().a);容易让人发懵
不过仔细一分析就能发现结果是  :
4

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

5 个回复

倒序浏览
亲~你写错了!
应该是这个样子的:
  1. class Demo
  2. {
  3.     int a;
  4.     public Demo inc()
  5.     {
  6.         this.a++;
  7.         return this;
  8.     }
  9. }
  10. public class IncDemo
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 Demo D  = new Demo();
  15.                 System.out.println(D.inc().inc().inc().inc().a);
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
这个贴回复了这么多次,都木有成功
回复 使用道具 举报
呵呵   ,
回复 使用道具 举报
a的初始化为0,Demo类里有个inc()方法,返回的是本类对象的引用,this.a++;意思是使当前这个对象调用的a值自增1,主函数中同一个对象调用了这个方法四次,即a的值自增四次,为4,所以最终输出结果是4.

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
欢欢 发表于 2014-2-18 09:48
亲~你写错了!
应该是这个样子的:

純屬:)手誤!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马