Java 编程/关键字/static
外观
static
是一个 Java 关键字。它可以应用于字段、方法或 内部类。静态字段、方法或类对于定义它的整个类只有一个实例,即使程序中没有该类的实例也是如此。例如,Java 入口点 (main()
) 必须是静态的。静态方法不能是 抽象
的。它必须放在变量类型或方法返回值类型之前。建议将其放在访问修饰符之后,final
关键字之前
代码部分 1:静态字段和方法。
public static final double PI = 3.1415926535;
public static void main(final String[] arguments) {
//…
}
|
静态项可以在实例化的对象上调用,也可以直接在类上调用
代码部分 2:静态项调用。
double aNumber = MyClass.PI;
MyClass.main(new String[0]);
|
静态方法不能调用非静态方法。this
当前对象引用在静态方法中也不可用。
- 静态变量可以用作同一个类对象的共享数据。例如,要实现一个计数器,它存储在给定时间创建的对象数量,可以定义如下
代码清单 1:CountedObject.java
public CountedObject {
private static int counter;
…
public AClass() {
…
counter++;
}
…
public int getNumberOfObjectsCreated() {
return counter;
}
}
|
每次创建对象时,counter
变量都会递增。
不应使用公共静态变量,因为这些变量会成为全局变量,可以在程序中的任何地方访问。但是可以使用全局常量。见下文
代码部分 3:常量定义。
public static final String CONSTANT_VAR = "Const";
|
- 静态方法可用于实用程序函数或不属于任何特定对象的函数。例如
代码清单 2:ArithmeticToolbox.java
public ArithmeticToolbox {
…
public static int addTwoNumbers(final int firstNumber, final int secondNumber) {
return firstNumber + secondNumber;
}
}
|
- 另见 静态方法