static
是 Java 中的一个关键字,它可以用来修饰变量、方法和代码块。它的主要作用是表示某个成员是属于类级别的,而不是实例级别的。
以下是 static
关键字在不同情况下的用法:
- 静态变量(类变量):
class Example { static int count = 0; // ... }
- 静态变量是属于类的,而不是属于实例的。所有实例共享同一个静态变量的值。
- 静态方法:
class Example { static void staticMethod() { // ... } }
- 静态方法属于类,可以通过类名直接调用,而不需要先实例化对象。
- 静态代码块:
class Example { static { // 静态代码块中的代码在类加载时执行,只执行一次 } }
- 静态代码块用于初始化静态变量或执行一些静态操作。
- 静态类:
Java 中的内部类可以被声明为静态类,这样它将成为外部类的一个静态成员。
class Outer { static class StaticInner { // ... } }
- 在上面的例子中,
StaticInner
是一个静态内部类。 - 静态导入:
import static
可以用于导入一个类的静态成员,使得可以直接使用该成员,而不用通过类名。
import static java.lang.Math.PI;
- 这样就可以直接使用
PI
,而不用写Math.PI
。
注意事项:
- 静态方法中不能直接访问类的非静态成员,但可以访问静态成员。
- 静态方法中不能使用
this
关键字,因为它不属于任何实例。 - 静态方法不能被子类重写,但可以被子类的同名静态方法隐藏。
总的来说,static
关键字的使用场景主要是在多个对象之间共享某个属性或方法,或者在不需要实例化对象的情况下使用类的成员。