为什么静态变量可以直接用类名.变量名来访问?
之前学习的时候不是说类是客观不存在的 必须实例化成对象吗?
为什么静态变量就可以直接用类名.变量名来访问呢?
之前学习的时候不是说类是客观不存在的 必须实例化成对象吗?
为什么静态变量就可以直接用类名.变量名来访问呢?
2016-08-09
静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。
静态变量和普通变量的区别:
1、首先类的静态成员变量为类的全局变量,并不为类的对象所拥有。
2、而类的普通成员变量通过类生成对象后是属于生成对象的变为此对象所特有,不能与其它生成的对象所共有。如下图所示,两个对象a,b的成员变量x并不是相同的。
3、静态成员变量需要在全局定义
4、普通成员变量是属于某个对象的,不需进行全局定义。
5、访问类的静态成员变量可以通过如下形式
如类A中定义了静态成员变量x,形式为类名::变量名
6、类的静态成员变量在对象还没有产生前就已经存在了。
因为静态变量在程序运行期间一直存在,所以可以直接访问。
举报