java中static的四种使用情况
1.static成员变量
static修饰的静态变量,属于类,在内存中只有一个复制,只要静态变量所在的类被加载时,这个静态变量就会被分配空间。
2.static成员方法
static修饰的方法不需要创建对象,就可以直接调用,类名打点的方式
static方法中不能使用this和super关键字,不能调用非static方法,也不能访问非static成员变量
1 /* 2 如何保证一个类不能被手动创建对象? 3 1.将这个类定义成抽象的 4 2.私有化构造方法 5 通常用在工具类中,将方法用static修饰 6 */ 7 class A{ 8 private A(){} 9 static void show(){ 10 System.out.println("A show()"); 11 } 12 13 } 14 public class AbstractDemo3{ 15 public static void main(String[] args){ 16 //无法调用私有的构造方法 17 // A a = new A(); 18 A.show(); 19 } 20 }
3.static代码块
static代码块独立于成员变量和成员函数,只会被执行一次
4.static和final结合
表示变量,static和final,一旦被赋值不能被改变,通过类名可以访问
边上方法,static和final,该方法不能被重写,通过类名可以访问