当您将变量或方法声明为静态时,它属于类,而不是特定实例。这意味着即使创建了类的多个对象,或者没有创建任何对象,静态成员也只存在一个实例。它将被所有对象共享。
例子:
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)访问静态变量。
在命名静态变量时使用大写是一种常见的做法,尽管不是强制性的。