Java Static 解说!
(J雪)Email:zhuam@studyjava.com
过去看书我总是不能揪起深意,总是囫囵吞枣,也许是上了年纪的缘故( 呵呵:-) ),现在开始
慢慢的进入正题了,呵呵!大家都应该知道在JAVA中Statci方法,是不能调用非Statci方法,和非Statci
数据成员的,他只能够调用类方法和类变量,这是一个定理,但你想过为什么了吗?真的想过???
在这里我将竭尽所能为您阐述Static,其实要想完全了解Static,那么首先This你要清楚,This代表的
是”当前的对象“,This用于返回当前对象的一个引用。
This在应用中的例子01:
public class Example01{
int i=10;
public seti(int i){
this.i=i;
}
}
This在应用中的例子02:
public class Example02{
public void Call(int i){/* ...*/}
}
Example02 A=New Example02();
Example02 B=New Example02();
A.Call(1);
B.Call(2);
如果只有Call()方法,那么它又该怎么判断是对象A,还是对象B在调用他,在这里编译器在暗中做了
很多事情,你所操纵的哪个对象的引用会被当作一个重要的参数传递给Call()方法,调用的形式如下:
Example02.Call(A,1);
Example02.Call(B,2);
这是在程序内部的形式,我们写程序可不能这样啊!
如果你理解了我上面说的This,那么理解Static就不远了,Static的方法代表这个方法没有THIS,你不能在
Static方法中调用非Static方法,Static方法可以让你直接对类调用Static方法,不用实例化,这是Static
应用的本意,(在C语言中类似)一个全局函数,然而JAVA没有全局函数,类的Static方法只能访问
Static方法和Static数据成员,在Static方法中你不能让他对对象发送消息,因为他没有THIS。
由于我的能力有限,我随尽了全力但仍有不足,不对指出尽请指出,谢谢!
文章作者:?戥
文章来源:中国X黑客小组[CnXHacker.Net]