天天动画片 > 八卦谈 > 静态成员变量与实例变量的区别?

静态成员变量与实例变量的区别?

八卦谈 佚名 2023-08-03 09:17:00

静态变量也叫类变量,这种变量前加了static修饰符。可以直接用类名调用,也可以用对象调用,而且所有对象的同一个类变量 都是共享同一块内存空间。

实例变量也叫对象变量,这种变量没有加static修饰符。只能通过对象调用, 而且所有对象的同一个实例变量是共享不同的内存空间的。

区别在于:

静态变量是所有对象共有的,某一个对象将它的值改变了,其他对象再去获取它的值,得到的是改变后的值;

实例变量则是每一个对象私有的,某一个对象将它的值改变了,不影响其他对象取值的结果,其他对象仍会得到实例变量一开始就被赋予的值。

在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值。即使两个不同的实例对象是属于同一个类,它们的同名非静态成员变量在内存中占用的空间是不同的。

静态成员变量有所不同。所有的实例对象都共用一个静态变量,内存中只有同一处空间存放这个静态变量值的。因此,如果一个对象把静态变量值改了,另外一个对象再取静态变量值就是改过之后的值了。

本文标题:静态成员变量与实例变量的区别? - 八卦谈
本文地址:www.ttdhp.com/article/36810.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们