静态变量和静态方法
- 静态(static)变量
静态变量(类变量)是一种全局变量,它可以在各个对象实例间共享。
class ABCD { char data; static int share_data; } class StaticDemo { ABCD a,b,c,d; }
上述4个对象a,b,c,d共同拥有静态变量share_data.
static变量的生存期不依赖于对象,其他类可以不通过实例化访问他们:
public class StaticVar { public static int number = 5; } public class OtherClass { public void Method() { int x = StaticVar.number; // here } }
静态(static)方法
静态方法相当于C语言的全局函数,其他的类不用实例化即调用它,同静态变量一样。
我们知道,全局变量分为实例变量(Instance Variable)和类变量(Static Variable)两种;同样,方法也可以分为实例方法和静态方法(加static关键字)两种。在使用变量时需要注意一下规则:
实例方法既可以使用实例变量,又可以使用类变量;
而静态方法只能使用类变量,不能直接使用实例变量。
- 当静态变量执行赋值操作时,变量的值为程序运行最后一次给变量赋值后的值
private void TestValue() { static int num = 1; num++; }
该方法第一次调用后num在内存中的值是2;第二次调用后值是3.