在 Java 中,静态方法是指定义在类中的一个方法,被声明为静态。它们不依赖于类的实例,可以通过类名直接调用。而当我们在静态方法中使用了 static 关键字修饰的变量、方法或类时,就是指这些变量、方法或类是属于该类本身,而不是属于该类实例化对象的。
我们可以将 static 理解为一个标记,意味着该变量、方法或类与类本身紧密相关,而不属于类中每个实例的独有属性和方法。
下面介绍一些 static 关键字的使用:
1. 静态变量(类变量)
静态变量(或称类变量)是指定义在类中,且被声明为 static 的变量。该变量可以通过类名直接访问,而不需要对类进行实例化。例如:
public class MyClass {
public static int num = 10;
// ...
}
// 在其他类中访问静态变量
int myNum = MyClass.num; // 直接通过类名访问静态变量
2. 静态方法
静态方法是指定义在类中,且被声明为 static 的方法,不需要对类进行实例化直接通过类名访问。静态方法中也可以访问静态变量。示例代码如下:
public class MyClass {
public static void myStaticMethod() {
System.out.println("This is a static method.");
}
// ...
}
// 在其他类中调用静态方法
MyClass.myStaticMethod(); // 直接通过类名调用静态方法
3. 静态代码块
静态代码块是指在类被加载时执行的一段代码块,只会执行一次,通常用于进行静态变量的初始化。示例代码如下:
public class MyClass {
public static int num;
static {
num = 10;
System.out.println("Static code block executed");
}
// ...
}
- 在上面的例子中,静态代码块在类加载时执行,首先将
num赋值为 10,然后打印一条信息。注意,静态代码块只会在类被加载时执行一次。- 需要注意的是,使用静态方法和变量时,应该慎重考虑,确保它们确实适用于该对象的所有实例。如果静态方法的行为依赖于传递给它的参数,或者与对象状态有关,则可能应该使用实例方法而不是静态方法。