当前位置:编程学习 > JAVA >>

java编程思想里看到一段代码,不是很理解


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

}


java this --------------------编程问答-------------------- 方法被类修饰,说明这个方法返回的是类对象。this就代表对象。 --------------------编程问答--------------------
链式编程
返回对象本身 --------------------编程问答-------------------- 嗯,THIS就是返回对象自身,然后再调用对象的同一个方法实现I的增加 --------------------编程问答--------------------
引用 2 楼 longtian1213 的回复:

链式编程
返回对象本身
正解,不然就要写成Leaf x = new Leaf(); 
x.increment();
x.increment();
x.increment();
x.print();  --------------------编程问答--------------------
来学习了。 --------------------编程问答-------------------- 如果写成
public Leaf increment() { 
你就清楚它是什么意思了。
原来的写法等同于
default Leaf increment() { 
只不过不同的修饰符。

返回this,表示返回本类的对象。 --------------------编程问答-------------------- Leaf increment() { 
i++; 
return this; 


Leaf 表示该方法返回的类型必须是是Leaf 或者它的子类,
return this  表示当前类的引用。 --------------------编程问答-------------------- 楼主好好看看基本知识吧
一个方法定义包阔那基本分?
还有this到底在java中怎么用的。这些都是基本知识啊。找本入门的书看,开始就看think in java  可能有点吃不消,最好是大学里的教程那种入门的书。看完了再看think in java --------------------编程问答-------------------- return this;  可以用别的什么东西替代吗?
什么情况下会用到链式编程? --------------------编程问答-------------------- 这玩意儿靠谱么 --------------------编程问答-------------------- 就是返回当前对象,在Main方法里这样:
Leaf l = new Leaf();
l.increament()返回的是成员变量i加1之后的l; --------------------编程问答-------------------- 1、不就是返回类型么,指明该方法返回该类的实例,就如同将Leaf换成Integer,String是一样的
2、this返回当前类的实例,就是当前所调用increment方法的Leaf类的实例 --------------------编程问答-------------------- 真不知道开始就故意弄出这么多麻烦的东西做什么。做一个简单的示例,将问题说清楚就好了吧。
建议换个简单点的教材吧。 --------------------编程问答-------------------- this指的是此对象自身。也就是哪个对象里面用this就指的是哪个对象。this.increment()是指此对象的方法。
楼上大神说的狠清楚了 --------------------编程问答-------------------- 楼主已经明白了 是吧 --------------------编程问答--------------------
引用 2 楼 longtian1213 的回复:

链式编程
返回对象本身
+1 --------------------编程问答-------------------- 为什么increment()用Leaf来定义,用类名定义的方法有什么意义?
leaf 就是increment()的返回类型

increament()中的return this返回的this指什么?
返回自身的对象 --------------------编程问答-------------------- 就这水平,你应该看看什么21天精通java之类的书 --------------------编程问答-------------------- 就是类中的方法返回值类型为该类的一个对象 --------------------编程问答-------------------- 嘿嘿 七楼正解 --------------------编程问答-------------------- 我这里的类名为Test = 你的Leaf

详见下面时序图
--------------------编程问答-------------------- 楼上详解…… --------------------编程问答-------------------- 楼上有正解! --------------------编程问答-------------------- 关键这么写的好处是什么啊 --------------------编程问答-------------------- 楼上的是正解
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,