当前位置:  技术问答>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();”?

谢谢了

|
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();
来调用

|
如果我没记错的话,这是一道THINKING JAVA里的一个例子,好象是在第四章吧!

x是不一个指向Leaf类型的引用而是一个指向Leaf对象的引用,就是Leaf类的
实例。 this 返回的是当前调用他的那个实例的引用。就象sunni(死猪)说的一样。就好想是 x=x 样!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Double Ended Queues 成员 back():returns the last element
  • 求助:驱动中看到一种平常没有见到的RETURN方法:return 判断语句
  • C++ Double Ended Queues 成员 front():returns the first element
  • java开源软件 iis7站长之家
  • C++ Double Ended Queues 成员 at():returns a specific element
  • iptables 中的 return
  • C++ Double Ended Queues 成员 begin():returns an iterator to the first element
  • 在java中怎样用return语句?
  • C++ Double Ended Queues 成员 get_allocator():returns the dequeue's allocator
  • 驱动函数中的return
  • java命名空间java.sql接口statement的类成员方法: return_generated_keys定义及介绍
  • PHP return语句的另一个作用
  • java命名空间javax.sound.sampled类floatcontrol.type的类成员方法: aux_return定义及介绍
  • 方法中的return()是返回到何处的,如何能获得,请解答
  • C++ Double Ended Queues 成员 size():return the number of elements in the dequeue
  • 请问a method能return an exception吗?能写个例子看看吗?
  • C++ Double Ended Queues 成员 end():returns an iterator to the end of the queue
  • System.in.println( " You can press return to quitn" );什么意思?
  • java命名空间javax.sound.sampled类floatcontrol.type的类成员方法: reverb_return定义及介绍
  • return和break的区别解析
  • C++ Double Ended Queues 成员 rbegin():returns a reverse iterator to the end of the dequeue
  • php递归函数中使用return的注意事项


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3