创建类变量
创建对象时,它将拥有相应类中所有变量的版本。
每个 Virus 对象都有自己的 new Seconds、maxFileSize和author变量。
如果修改对象的变量,将不会影响其他Virus对象中的同一个变量。
有时属性与整个类而不是特定对象相关联,它们称之为类变量。
如果要跟踪在程序中使用了多少个Virus对象,则可以使用一个类变量来存储这种信息。
而且整个类只有该变量的一个拷贝。前面为对象创建的变量称为“对象变量”,因为它们与具体对象相关联。
这两种变量的创建方法和使用方法相同,但是创建类变量时指定使用关键字static。
下面的语句为Virus类创建了一个类变量:
static int virusCount = 0;
修改类变量的方法与修改对象变量完全相同。如果有一个名为tuberculosis的Virus对象,
可以使用下面的语句来修改类变量virusCount:
tuberculosis.virusCount++;
由于类变量用于整个类而不是特定对象,因此可以直接使用类名:
Virus.virusCount++;
这两条语句完成相同的工作,但处理类变量时使用类名有个优点,
即表明virusCount是个类变量而不是对象变量。如果处理类变量时使用对象名,
在不仔细查看类的源代码的情况下,将无法确定是类变量还是对象变量。
类变量也称为静态变量。
警告:
尽管类变量很有用,但是也不要过度使用它。因为这些变量在类运行之时就会一直存在。如果类变量中存储的是一个大型的对象数组,则会占据很大的一块内存,而且不会将其释放掉。