静态变量:它的值对所有的实例来说都相同
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
假设你要在执行过程中计算有多少Duck的实例已经被创建出来。你要怎么做?或许可以在构造函数中递增某个实例变量的值?
class Duck {
int duckCount = 0;
public Duck() {
duckCount++;
}
}
不行,因为duckCount
是个实例变量,所以这样做不会成功。每个Duck
在初始化的时候都会包含一个duckCount
实例变量且它的值都是0。你也许可以调用别的类来计算,不过这样又不太优雅。你需要的是只会有一份拷贝的变量,且所有实例都会用到该拷贝。
这就是静态变量的用途:被同类的所有实例共享的变量。所以我们可以这样使用duckCount
:
static int duckCount = 0;
这样就可以轻松的计算有多少Duck的实例变量了。
静态变量是共享的。同一类所有的实例共享一份静态变量。
实例变量:每个实例一个。静态变量:每个类一个。
在线练习
{$ activeFileHint $}