static属于类的,不属于任何一个对象的
static关键字的应用场景:
1.静态代码块:在类下用static修饰的代码块
static{
代码;
}
只能执行一次,是在第一次使用类之前执行
类加载时执行
静态属性也是类加载时开辟空间
可以利用静态代码块,把这个类使用之前需要的准备工作放到静态代码块中
2.static修饰属性:
不再属于对象的,而是属于这个类
当程序运行后,第一使用某个类时,JVM会加载这个类到内存,
程序运行过程中,一个类只加载一次,所以静态属性只有一份
在类的外部使用静态属性:
通过 类名.静态属性
对象引用.静态属性
在类的内部:普通方法,静态方法中都可以直接使用
3.static修饰方法:
不再属于对象,而是属于这个类
访问修饰符 static 返回值类型 方法名(形参){
}
在类的外部使用静态方法:
通过 类名.静态方法(实参)
对象引用.静态方法(实参)
4.在类的内部:
0)普通方法中可以直接使用普通属性或方法
静态方法中可以直接使用静态属性或方法
1)普通方法中能否直接使用静态属性或静态方法??
可以
2)静态方法中能否直接使用普通属性或普通方法??
不可以. 不能确定是否有对象,也不能确定是哪个对象的属性或方法