黑马程序员技术交流社区

标题: 会让新人发懵的一个this语句 [打印本页]

作者: sun_jun    时间: 2014-2-18 09:32
标题: 会让新人发懵的一个this语句
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

作者: 欢欢    时间: 2014-2-18 09:48
亲~你写错了!
应该是这个样子的:
  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. }
复制代码

作者: 疲劳的小马    时间: 2014-2-18 20:27
这个贴回复了这么多次,都木有成功
作者: ___________゛M    时间: 2014-2-18 20:29
呵呵   ,
作者: 疲劳的小马    时间: 2014-2-18 20:31
a的初始化为0,Demo类里有个inc()方法,返回的是本类对象的引用,this.a++;意思是使当前这个对象调用的a值自增1,主函数中同一个对象调用了这个方法四次,即a的值自增四次,为4,所以最终输出结果是4.
作者: sun_jun    时间: 2014-2-18 22:57
欢欢 发表于 2014-2-18 09:48
亲~你写错了!
应该是这个样子的:

純屬:)手誤!




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