在Java类中,由static修饰的属性(成员变量)叫做静态变量,也叫类变量。而被static修饰的常量就叫做静态常量,静态变量和静态常量统称为静态成员。注意,局部变量不能被声明为静态变量。
实例化类和实例化对象对于静态变量和静态常量来说,无论一个类实例化出来多少个对象,它的静态成员都只有一份拷贝,可以被所有的对象共享。
对实例变量来说,每个实例对象都有自己独立的变量,各个实例对象中的同名变量互不影响。但是对于静态变量来说,无论修改哪个实例对象的静态变量,效果其实都是一样的。也就是说,所有实例对象的静态变量都会被修改,原因在于静态变量并不属于某个单独的实例对象所有。
所以当我们需要在多个对象之间进行信息共享的时候,就可以考虑使用静态变量或静态常量,增加实例之间的交互性。而如果类的所有实例对象都包含一个相同的常量属性,我们就可以把这个属性定义为静态常量,以此节省内存空间。
可以说,实例成员在每个实例对象中都有自己的一个独立的私有“空间”,但是静态成员只有一个共享的公共“空间”,所有实例对象都会共享该静态成员。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论