被static 修饰的成员成为静态成员或类成员,被类中所有对象所共享。
静态成员可以使用类名直接访问,也可以使用对象名访问。
1、static 之静态变量
静态变量,就是在变量前加上 static
2、static之静态方法
静态方法,用static修饰的方法
1)静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员
静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
2)普通成员方法中,直接访问同类的非静态变量和静态变量
3)静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
public class HelloWorld {
// 定义静态变量score1
static int score1 = 86;
// 定义静态变量score2
static int score2 = 92;
// 定义静态方法sum,计算成绩总分,并返回总分
public static int sum() {
int sum = score1 + score2;
return sum;
}
public static void main(String[] args) {
// 调用静态方法sum并接收返回值
int allScore = sum();
System.out.println("总分:" + allScore);
}
}
3、静态初始化块
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
运行结果:
程序执行时,最先执行静态初始化块,然后执行普通初始化块,最后执行构造方法。