请问什么时候要用到static关键字。
有的例子在定义字段,方法,属性等时候都用到了,而有的时候又不用?如解呢???
LZ是想问什么时候用静态变量比较合适是吧? 个人认为应该从以下几方面考虑
1.内存分配
静态变量在应用程序初始化时,就存在于内存当中,直到它所在的类的程序运行结束时才消亡;
而非静态变量需要被实例化后才会分配内存。
2.生存周期
静态变量生存周期为应用程序的存在周期;
非静态变量的存在周期取决于实例化的类的存在周期。
3.调用方式
静态变量只能通过“类.静态变量名”调用,类的实例不能调用;
非静态变量当该变量所在的类被实例化后,可通过实例化的类名直接访问。
4.共享方式
静态变量是全局变量,被所有类的实例对象共享,即一个实例的改变了静态变量的值,其他同类的实例读到的就是变化后的值;
非静态变量是局部变量,不共享的。
5.访问方式
静态成员不能访问非静态成员;
非静态成员可以访问静态成员。
静态变量和私有变量的最主要的区别就在于:他们分配内存空间的方式不一样。
静态变量的内存是在程序开始执时变量就占用了内存,直到程序结束时变量才释放内存.
私有变量(或者说是局部变量,不知道你是不是指这个:)),是在程序运行到该步的时候分配内存。所以,当离开了该私有变量的作用域的时候,私有变量的内存空间会被释放。
所以:静态变量只的值只会初始化一次,后面每次访问,都是上次处理过的值,(即使是在一个函数内部)。
私有变量每次都初始化。
希望对LZ有帮助
[ 本帖最后由 wangnannan 于 2010-10-27 21:02 编辑 ]