对于一个类class Temp{
int Normal;
static int Static;
static int getValue(){ return Static;}
};
当使用这个类定义了两个变量的时候,比如Temp a,b;在内存中,a和b对象分别持有一个Normal成员,但他们共同持有Static成员。
也就是如果你给a的Normal赋值,不会影响b的Normal;但是如果你给a的Static赋值,b的Static也会受到影响,
因为他们共同持有Static。Normal在内存中可以被分配很多个不同的值,但Static只有一个,就像只有一个地球,如果你挖一个坑,那么别人也会看到这个坑。对于静态方法getValue,由于内存中只存在一个getValue方法,
所以当你调用它的时候,计算机就不知道应该返回的是a的Normal还是b的Normal。如果你使用了第一种方法,不论是谁调用的,计算机都会找到唯一的Static,从而正确返回。
|