static
关键字是JAVA中非常重要的修饰符,它可以用来修饰类的方法、变量、代码块或初始化块。
修饰方法:
非静态方法(对象方法):可以直接使用非静态方法和静态方法
静态方法(类方法):可以直接使用静态方法,但不能直接使用非静态方法(有类不一定有对象)
//非静态方法 对象方法
public void m1(){
//非静态方法可以直接使用静态方法
m2();
//非静态方法可以直接使用非静态方法
m4();
System.out.println(this.age+"");
}
//静态方法 类方法
//静态方法中不能直接使用非静态方法(有类不一定有对象)
public void static m2(){
System.out.println(this.age+"");//报错,this代表对象,没对象调不起来
//静态方法中可以直接使用静态方法
m3();
}
public void static m3(){
Person p1 = new Person();
p1.m1();
System.out.println(this.age+"");//报错,this代表对象,没对象调不起来
}
public void m4(){
System.out.println(this.age+"");
}
修饰变量:
无论创建多少个类的实例,静态变量只有一份。静态变量在类加载的时候初始化,并且在整个程序运行期间保持其值
//对象属性
public int age;
//类属性
public static String name;
修饰代码块:
-
静态代码块是在类加载时执行的代码块,通常用于初始化静态变量。
-
静态代码块只在类第一次加载时执行一次,之后不再执行。
//静态代码块,作用:初始化一些变量
static{
System.out.println("静态代码块");
}