this用法的小问题?

caofaping 2008-10-08 12:46:31
public class Leaf {
private int i = 0;
Leaf increment()//这是个构造方法吗?怎么还有个increment?
{
i++;
return this;//想知道这个this指的是什么?
}
void print() {
System.out.println("i = " + i);
}
public static void main(String[] args) {
Leaf x = new Leaf();
x.increment().increment().increment().print();//这句怎么么运行?
}
...全文
128 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
colinwj 2008-10-08
  • 打赏
  • 举报
回复
Leaf increment()//这是个构造方法吗?怎么还有个increment?

不是,只是个普通的方法,返回类型为Leaf

return this;//想知道这个this指的是什么?

指的是当前的Leaf对象



x.increment().increment().increment().print();//这句怎么么运行?

调用increment方法3次,最后打印结果
caofaping 2008-10-08
  • 打赏
  • 举报
回复
你意思是说Leaf increment() 方法名是increment,方法返回是leaf类型是吗?
那最后的i是多少?怎么远行?
JJZHK 2008-10-08
  • 打赏
  • 举报
回复
Leaf increment()//这是个构造方法吗?怎么还有个increment?
{
i++;
return this;//想知道这个this指的是什么?
}
这是一个很普通的方法。
bootupnow 2008-10-08
  • 打赏
  • 举报
回复
Leaf increment()//这是个构造方法吗?怎么还有个increment?
{
i++;
return this;//想知道这个this指的是什么?
}
返回一个Leaf对象,i自增1
this就是调用increment方法的这个对象本身。
ouyangxiaokang6 2008-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 colinwj 的回复:]
Leaf increment()//这是个构造方法吗?怎么还有个increment?

不是,只是个普通的方法,返回类型为Leaf

return this;//想知道这个this指的是什么?

指的是当前的Leaf对象


x.increment().increment().increment().print();//这句怎么么运行?

调用increment方法3次,最后打印结果
[/Quote]
这是正确的。建议楼主看一些java基础的书。不要钻牛角尖。
caofaping 2008-10-08
  • 打赏
  • 举报
回复
hehe谢谢1
ZXEOC 2008-10-08
  • 打赏
  • 举报
回复
对,就是x,最后那句相当于
x.increment();
x.increment();
x.increment();
x.print();
caofaping 2008-10-08
  • 打赏
  • 举报
回复
7楼的this返回的是该方法的引用那不就是x吗?
caofaping 2008-10-08
  • 打赏
  • 举报
回复
不是 我在是看了那本书,看到着有点不懂?
mystery1004 2008-10-08
  • 打赏
  • 举报
回复
public class Leaf {
private int i = 0;
Leaf increment()// 这个不是构造方法,只是一个返回类型为 Leaf 的普通方法。
{
i++;
return this;// 这个this返回的就是调用该方法的引用
}
void print() {
System.out.println("i = " + i);
}
public static void main(String[] args) {
Leaf x = new Leaf();
x.increment().increment().increment().print();// x.increment() 返回的是x ,该对象的属性i加一。往后类推!
}
caofaping 2008-10-08
  • 打赏
  • 举报
回复
指的是当前的Leaf对象 能在说清楚点吗?
返回leaf类型,这个类型就是x吗?
ZangXT 2008-10-08
  • 打赏
  • 举报
回复
用Thinking in Java作为入门书了?

62,614

社区成员

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

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