当您将变量或方法声明为静态时,它属于类,而不是特定实例。这意味着即使创建了类的多个对象,或者没有创建任何对象,静态成员也只存在一个实例。它将被所有对象共享。
例子:
public class Counter {
public static int COUNT=0;
Counter() {
COUNT++;
}
}
COUNT变量将由该类的所有对象共享。
现在,我们可以在main中创建Counter类的对象,并访问静态变量。
public class MyClass {
public static void main(String[ ] args) {
Counter c1 = new Counter();
Counter c2 = new Counter();
System.out.println(Counter.COUNT);
}
}
//输出 "2"
输出是2,因为COUNT变量是静态的,并且每次创建Counter类的新对象时递增一个。在上面的代码中,我们创建了两个对象。
也可以使用该类的任何对象(如c1.COUNT)访问静态变量。
在命名静态变量时使用大写是一种常见的做法,尽管不是强制性的。