static 关键字的应用场景

1、static修饰变量

      a)类中static修饰的变量称为静态变量(也称类变量)。

      b)类的成员变量分为类变量和实例变量。实例变量属于具体的对象,类变量属于类,不同对象的实例变量被分配到不同的内存空间,而对应类的所有对象来说,类变量共享同一个内存空间。

      c)程序执行时,在类没有创建对象时,类变量就被分配内存,实例变量需要在创建具体的对象时才分配内存空间。

class Test{
    // a变量使用static修饰,此变量为类变量,在类加载时分配内存
    private static int a = 0;
     
    // b变量没有使用static修饰,此变量属于实例变量,在创建实例时分配内存
    private int b = 0;
}

2、static修饰方法

      a)类的成员方法分为类方法和实例方法,用static修饰的方法为类方法,否则为实例方法,实例方法只有生成对象时才分配内存。

      b)类方法可以通过类名直接调用,实例方法只能通过类对象调用。

注意:类(静态)方法中不能使用类的实例(成员)变量,只能使用类(static)变量。

class Test{
    // a变量使用static修饰,此变量为类变量,在类加载时分配内存
    private static int a = 0;
     
    // b变量没有使用static修饰,此变量属于实例变量,在创建实例时分配内存
    private int b = 0;
     
    // 定义test方法为类方法,类方法中只能访问类变量
    public static void test(){
        System.out.println(Test.a);
    }
     
    public static void main(String[] args){
        // 类方法可以使用类名直接调用
        Test.test();
    }
}

 

你可能感兴趣的