跳转到内容

Java 编程/关键字/static

来自 Wikibooks,开放的书籍,开放的世界

static 是一个 Java 关键字。它可以应用于字段、方法或 内部类。静态字段、方法或类对于定义它的整个类只有一个实例,即使程序中没有该类的实例也是如此。例如,Java 入口点 (main()) 必须是静态的。静态方法不能是 抽象 的。它必须放在变量类型或方法返回值类型之前。建议将其放在访问修饰符之后,final 关键字之前

Example 代码部分 1:静态字段和方法。
public static final double PI = 3.1415926535;

public static void main(final String[] arguments) {
   //…
}

静态项可以在实例化的对象上调用,也可以直接在类上调用

Example 代码部分 2:静态项调用。
double aNumber = MyClass.PI;
MyClass.main(new String[0]);

静态方法不能调用非静态方法。this 当前对象引用在静态方法中也不可用。

  • 静态变量可以用作同一个类对象的共享数据。例如,要实现一个计数器,它存储在给定时间创建的对象数量,可以定义如下
Computer code 代码清单 1:CountedObject.java
public CountedObject {
   private static int counter;
   
   public AClass() {
      
      counter++;
   }
   
   public int getNumberOfObjectsCreated() {
      return counter;
   }
}

每次创建对象时,counter 变量都会递增。

不应使用公共静态变量,因为这些变量会成为全局变量,可以在程序中的任何地方访问。但是可以使用全局常量。见下文

Example 代码部分 3:常量定义。
public static final String CONSTANT_VAR = "Const";
  • 静态方法可用于实用程序函数或不属于任何特定对象的函数。例如
Computer code 代码清单 2:ArithmeticToolbox.java
public ArithmeticToolbox {
   
   public static int addTwoNumbers(final int firstNumber, final int secondNumber) {
        return firstNumber + secondNumber;
   }
}
另见 静态方法
华夏公益教科书