在java编程思想里看到一段代码,不是很理解
问题1:为什么increment()用Leaf来定义,用类名定义的方法有什么意义?
问题2:increament()中的return this返回的this指什么?
代码如下:

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(); 

}javathis

解决方案 »

  1.   

    方法被类修饰,说明这个方法返回的是类对象。this就代表对象。
      

  2.   

    嗯,THIS就是返回对象自身,然后再调用对象的同一个方法实现I的增加
      

  3.   

    正解,不然就要写成Leaf x = new Leaf(); 
    x.increment();
    x.increment();
    x.increment();
    x.print(); 
      

  4.   

    如果写成
    public Leaf increment() { 
    你就清楚它是什么意思了。
    原来的写法等同于
    default Leaf increment() { 
    只不过不同的修饰符。返回this,表示返回本类的对象。
      

  5.   

    Leaf increment() { 
    i++; 
    return this; 
    } Leaf 表示该方法返回的类型必须是是Leaf 或者它的子类,
    return this  表示当前类的引用。
      

  6.   

    楼主好好看看基本知识吧
    一个方法定义包阔那基本分?
    还有this到底在java中怎么用的。这些都是基本知识啊。找本入门的书看,开始就看think in java  可能有点吃不消,最好是大学里的教程那种入门的书。看完了再看think in java
      

  7.   

    return this;  可以用别的什么东西替代吗?
    什么情况下会用到链式编程?
      

  8.   

    就是返回当前对象,在Main方法里这样:
    Leaf l = new Leaf();
    l.increament()返回的是成员变量i加1之后的l;
      

  9.   

    1、不就是返回类型么,指明该方法返回该类的实例,就如同将Leaf换成Integer,String是一样的
    2、this返回当前类的实例,就是当前所调用increment方法的Leaf类的实例
      

  10.   

    this指的是此对象自身。也就是哪个对象里面用this就指的是哪个对象。this.increment()是指此对象的方法。
    楼上大神说的狠清楚了
      

  11.   

    为什么increment()用Leaf来定义,用类名定义的方法有什么意义?
    leaf 就是increment()的返回类型increament()中的return this返回的this指什么?
    返回自身的对象
      

  12.   

    就这水平,你应该看看什么21天精通java之类的书
      

  13.   

    我这里的类名为Test = 你的Leaf详见下面时序图