黑马程序员技术交流社区
标题:
会让新人发懵的一个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
亲~你写错了!
应该是这个样子的:
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(D.inc().inc().inc().inc().a);
}
}
复制代码
作者:
疲劳的小马
时间:
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