static关键字
- static就是没有this的方法
- 可以在没有创建任何对象的前提下,仅通过类本身来调用
- 很像全局方法,但是Java中禁止全局方法
静态代码块
public class 类名称{
static{
//静态代码块内容
}
}
特点
当第一次用到本类时,静态代码块执行唯一的一次
静态代码块执行时机:
静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,会按照书写顺序依次执行。后面在比较的时候会通过具体实例来证明。
构造代码块:
构造代码块在创建对象时被调用,每次创建对象(依赖于构造函数,不实例化对象,不会执行)都会调用一次,但是优先于构造函数执行。
静态变量
如果想让一个类的所有对象共享数据,就要使用静态变量,也叫类变量。
静态方法
静态部分是依赖于类,而不是依赖于对象存在的,所以静态部分的加载优先于对象存在
-
静态方法只能访问静态变量
-
静态不能直接访问非静态【重点 & 注意】原因:在内存当中,【先有】静态内容,【后有】非静态内容
-
静态方法不可以使用this关键字
-
成员方法可以访问成员变量
-
成员方法可以访问静态变量
调用方法
无论是成员变量还是方法。如果有了static,都推荐用类名来调用它
静态变量:类名称.静态变量
静态方法:类名称.静态方法()
如何判断一个变量或者方法应该是实例还是静态的?
如果一个变量或方法依赖于类的某个实例,那就因该将它定义为实例变量或实例方法。
反之,定义为静态变量或静态方法。