static:静态的
- 静态变量
1.1) 由static修饰
1.2) 属于类的,存储在方法区中,只有一份
1.3)常常通过类名点类访问 - 静态方法
2.1) 由static修饰
2.2) 属于类的,存储在方法区中,只有一份
2.3) 常常通过类名点来访问
2.4) 静态方法没有隐式 this 传递
所以在静态方法中不能直接访问实例成员
2.5) 何时用:方法的操作仅与参数相关而与对象无关 - 静态块:
3.1) 属于类的,在类被加载期间自动执行,类只被加载一次,所以静态块只执行一次
3.2)何时用:常常用于加载/初始化静态资源(图片、音频、视频)
class Moo{
int a;
static int b;
void show() { // 有this
System.out.println(this.a);
System.out.println(Moo.b);
}
static void test() { // 没有 this
// 静态方法没有隐式 this 传递,没有 this 意味着没有对象
// 而实例变量 a 必须通过对象点来访问
// 结果:静态方法中不能直接访问实例成员
// System.out.println(a); 编译错误
System.out.println(Moo.b);
}
}