静态static关键字修饰符
2021-03-04 本文已影响0人
想象之中丶意料之外
一、静态成员属性/方法
1、一旦使用static修饰成员方法,那么该方法就成为了静态方法。静态方法不属于对象,而是属于类。
- 如果没有static关键字修饰方法,那么必须先创建对象【new】,然后通过创建出来的对象来访问方法。
- 如果有static,那么不需要创建对象,直接通过类名来调用方法。【注:静态方法也可以通过创建的对象来访问,但是javac在编译时,还会修改为:类名.方法名()】
2、推荐使用:无论是成员变量、还是成员方法,如果使用了static,那么都推荐使用类名直接进行调用
- 静态变量:类名.静态变量名
- 静态方法:类名.静态方法名()
注意事项:
- 静态不能访问非静态(即在静态的方法中,不能直接访问非静态的成员变量/方法)【原因:因为内存中是【先】有静态内容,【后】有非静态内容】
- 静态方法中不能使用this关键字【原因:this代表当前对象,通过谁调用的方法,谁就是当前对象。而静态方法或变量在访问时,会强制转换为通过类名调用,根本没有对象,所以无法使用this】
二、静态代码块
public class 类名 {
// 静态代码块
static {
// 静态代码块的内容
}
}
1、特点
- 当第一次使用到本类时,静态代码块会执行【唯一的一次】
- 静态内容总是优先于非静态,所以 “静态代码块” 比 “构造方法”【先】执行
2、静态代码块的典型用途
- 用来一次性的对静态成员变量进行赋值