谁能帮我看看(《java编程思想》里的例子)

mebio 2006-11-20 02:22:05
public class Leaf{
int i=0;
Leaf increment(){
i++;
return this;
}
void print(){
System.out.println("i= "+i);
}
public static void main(String[] args){
Leaf x = new Leaf();
x.increment().increment().increment().print();//这条语句
}
}
最后一条语句,那三个increment()都是怎么回事啊?
...全文
346 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mebio 2006-11-20
  • 打赏
  • 举报
回复
提示我:给的分总和不对。什么意思
mebio 2006-11-20
  • 打赏
  • 举报
回复
我好象明白了,谢谢大家了啊
aniude 2006-11-20
  • 打赏
  • 举报
回复
x.increment().increment().increment().print();//这条语句
他返回的始终是this,即当前对象,使得 i++ 3次
malligator 2006-11-20
  • 打赏
  • 举报
回复
caizhh(雨中の云) ( ) 信誉:100 Blog 2006-11-20 15:15:36 得分: 0

这题有种递归的感觉,increment()返回的也是Leaf,所以increment()方法调用一次,i就+1,但操作的还是同一个对象x

====
是重复调用



feifniao 2006-11-20
  • 打赏
  • 举报
回复
他写的那个方法 返回类型是LEAF是容易诱导你想偏的。
这些也就是一些基本的面向对象知识.以后慢慢的就不会再想这些事情了。
容百川 2006-11-20
  • 打赏
  • 举报
回复
因为increment()返回的是Leaf类型,所以可以重复调用Leaf里调用的方法了
gtw0520 2006-11-20
  • 打赏
  • 举报
回复
increment()返回的是Leaf类型,所以可以不断调用同一方法,如果不是Leaf类型,就看返回的类型是否有increment()方法了,但是结果是肯定不一样的
mebio 2006-11-20
  • 打赏
  • 举报
回复
如果increment()不是Leaf类型的,也可以这么调用么?
caizhh 2006-11-20
  • 打赏
  • 举报
回复
这题有种递归的感觉,increment()返回的也是Leaf,所以increment()方法调用一次,i就+1,但操作的还是同一个对象x
liubinlin 2006-11-20
  • 打赏
  • 举报
回复
你想调用几次就几次increment()返回类型是LEAF 类型的
mebio 2006-11-20
  • 打赏
  • 举报
回复
也就是说写三个increment()是调用三次的意思?也可以写两个或者4个?
可以这么调用么?
feifniao 2006-11-20
  • 打赏
  • 举报
回复
Leaf increment()
是写了一个方法,方法的返回值类型是 LEAF 类型的.
NEW 了一个LEAF对象以后,去执行类中定义的方法,使之在堆内存中定义的i加一.调用三次,I由0变成3.最后打印出来.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧