static关键字的简单介绍
类中的属性可以用static关键字修饰,用static关键字修饰的变量称为静态变量,它被类的所有实例所共享,即该静态变量的值一旦改变,该类所有实例的静态变量的值也会跟着改变,需要注意的是无论有多少个实例,静态变量只有一份。在日常开发中会用到static关键字,static关键字可以用来修饰变量和方法。
static关键字的使用
静态变量既可以通过类名直接调用,也可以通过类的实例进行调用,不过由于静态变量与类的实例无关,所以推荐使用类名直接调用静态变量。
public class StaticDemo {
private String name;
/**
* 使用static修饰变量
*/
private static String country = "china";
public static void main(String[] args) {
//第一种方式:使用类名调用 (推荐)
System.out.println("使用类调用:"+StaticDemo.country);
//第二种方式:使用类的实例调用
System.out.println("使用类的实例调用:"+new StaticDemo().country);
}
}
使用static关键字修饰的方法称为静态方法,同样静态方法的调用与上面所讲的一样,有两种方式,这里推荐使用直接通过类名的方式进行调用。需要注意的是静态方法里不能调用类中的普通变量,即不使用static关键字修饰的变量。因为静态方法与该类的实例无关,即不需要通过实例调用,而普通变量则随着类的实例生成的时候产生。所以静态方法中无法调用普通变量。同样静态方法中也无法调用普通方法。
static关键字的应用
static关键字可以用来修饰常量,Math类中有好多这样的常量,一般我们只需通过Math类的类名直接调用即可。在开发中,如果需要使用一些常量,可以考虑建一个类,里面定义一些有意义的常量,每个常量都是用static关键字进行修饰,其他的类可以通过类名直接调用,非常方便。
class StaticName {
/**
* redis的key前缀
*/
public static final String REDIS_PRE_KEY = "key";
/**
* redis的key过期时间
*/
public static final Long EXPIRE_TIME = 10000L;
}