在Java中,static 是一个关键字,它可以用来修饰类的成员变量、成员方法和内部类。static 的作用主要有以下几个方面:
- 静态变量(Static Variables):
当变量被声明为static时,它变成了类的静态变量,而不再是实例的变量。静态变量被所有类的实例共享,而不是每个实例各自拥有一份。
public class TestClass {static int staticVariable;// 其他成员和方法
}
- 静态方法(Static Methods):
类的静态方法是一个属于类而不是实例的方法。静态方法不能直接访问实例变量,只能访问静态变量。
public class TestClass {static void staticMethod() {// 静态方法的实现}// 其他成员和方法
}
- 静态块(Static Blocks):
静态块是在类加载时执行的一段代码块。它用于进行静态变量的初始化或执行一些只需要执行一次的操作。
public class TestClass {static {// 静态块的初始化操作}// 其他成员和方法
}
- 静态导入(Static Import):
static 还可以用于导入类的静态成员,使得在使用这些静态成员时不需要通过类名来限定。
package com.xiangpingeasy.learn.demo;import static java.lang.Math.*;public class TestClass {public static void main(String[] args) {double result = sqrt(25); // 等价于 Math.sqrt(25)System.out.println(result); // 输出 5.0}
}
- 静态内部类(Static Inner Classes):
如果一个内部类被声明为static,它就成为了静态内部类。静态内部类不需要依赖于外部类的实例而被实例化。
public class OuterClass {static class StaticInnerClass {// 静态内部类的实现}
}
static 的主要作用是将成员变量、方法或内部类与实例对象解绑,使其属于类本身而不是实例。这样,就可以通过类名直接访问静态成员,而不需要先创建类的实例。