当前位置: 技术问答>java相关
关于 return this
来源: 互联网 发布时间:2015-11-13
本文导语: 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(); } } “Suppose...
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();
}
}
“Suppose you’re inside a method and you’d like to get the reference to the current object. Since that reference is passed secretly by the compiler, there’s no identifier for it. However, for this purpose there’s a keyword: this.”
如何理解 “get the reference to the current object” ?
the current object reference 指的是什么?
如何理解 “x.increment().increment().increment().print();”?
谢谢了
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();
}
}
“Suppose you’re inside a method and you’d like to get the reference to the current object. Since that reference is passed secretly by the compiler, there’s no identifier for it. However, for this purpose there’s a keyword: this.”
如何理解 “get the reference to the current object” ?
the current object reference 指的是什么?
如何理解 “x.increment().increment().increment().print();”?
谢谢了
|
this 指的是当前类的对象.
|
x.increment()返回一个x对象的引用,所以可以x.increment().increment().increment().print();这样一直调用下去
|
Leaf increment() {
i++;
return this;
}
这个方法的返回值是 当前类的对象,所以用return this 返回的是一个Leaf 的对象。就象用Leaf leaf = new Leaf(); 创建一个对象一样。
对于这个类(Leaf) 的成员方法increment() ,print() 你可以用leaf.increment(),和leaf.print()来调用,所以你就可以用
x.increment().increment().increment().print();
来调用
i++;
return this;
}
这个方法的返回值是 当前类的对象,所以用return this 返回的是一个Leaf 的对象。就象用Leaf leaf = new Leaf(); 创建一个对象一样。
对于这个类(Leaf) 的成员方法increment() ,print() 你可以用leaf.increment(),和leaf.print()来调用,所以你就可以用
x.increment().increment().increment().print();
来调用
|
如果我没记错的话,这是一道THINKING JAVA里的一个例子,好象是在第四章吧!
x是不一个指向Leaf类型的引用而是一个指向Leaf对象的引用,就是Leaf类的
实例。 this 返回的是当前调用他的那个实例的引用。就象sunni(死猪)说的一样。就好想是 x=x 样!
x是不一个指向Leaf类型的引用而是一个指向Leaf对象的引用,就是Leaf类的
实例。 this 返回的是当前调用他的那个实例的引用。就象sunni(死猪)说的一样。就好想是 x=x 样!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。