标题:
[原创]Java中this与static的用法
[打印本页]
作者:
风灵风之子
时间:
2005-5-18 14:08
标题:
[原创]Java中this与static的用法
[这个贴子最后由starlight在 2005/05/18 02:38pm 第 3 次编辑]
[watermark]
本文是学习Thinking in Java的一些心得和笔记整理如下:
[color=#DC143C]关键字this
使用2个同型对象a、b,如何区分这两个对象同时调用函数f()呢?
例如:
class Banana {
void f(int i) {/*...*/}
Banana a = new Banana(),b = new Banana();
a.f(1);
b.f(2);
}
复制代码
其实是编译器自动作了一些事。有个隐晦的第一参数被传入f(),这个参数是“正在操作中的对象的引用”。所以上述代码中函数的调用形式如下:
Banana.f(a,1);
Banana.f(b,2);
复制代码
此种转换只存在于语言内部,无法在编辑器上书写那样的代码使得通过编译。
这个this关键字仅用于函数之内,能取得“唤起此一函数”的那个对象引用。可以对任何对象引用一样的处理方式来处理this。然而只是在某个类的某个函数内调用同一个类的另一个函数时,没有必要使用this。
何时需要使用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();
}
}
复制代码
由于increment()通过关键字this返回了当前的对象,所以可以在同一对象身上执行多次操作。
作者:
x86
时间:
2005-5-18 14:41
标题:
[原创]Java中this与static的用法
leaf类是看明白了
fllower就不行了...
this(petals); //这里是墨子意思....
作者:
谷神不死
时间:
2005-5-19 09:21
标题:
[原创]Java中this与static的用法
阿?斑竹不是学java的?
this(petals);就是调用上面的那个Flower(int petals)构造函数阿
其实就是先Flower(int petals)再Flower(String s,int petals)再Flower()最后print方法,这里的参数呢就是("hi",47)这两个
作者:
谷神不死
时间:
2005-5-19 09:53
标题:
[原创]Java中this与static的用法
嘿嘿,借此帖咨询一个问题
非常刻苦,到上面两位版主这般水平得多久阿
作者:
绿茶之星
时间:
2005-5-19 11:20
标题:
[原创]Java中this与static的用法
看来 谷神不死 朋友也是搞编程的咯~~ 编程偶不懂,不过欢迎你常来论坛看看啦
或是加我们的编程版斑竹 x86 的QQ,大家互相交流。
作者:
谷神不死
时间:
2005-5-19 12:43
标题:
[原创]Java中this与static的用法
唉,楼上的看走眼了
本人地地道道的初学者,正在为看不清前面的路而迷茫呢
作者:
wxf
时间:
2005-5-19 12:51
标题:
[原创]Java中this与static的用法
学习吧,没有什么比学习更能到达我们的目标了
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2