原创

【每天十分钟JAVA快速入门】(八)静态

静态

Java中的静态(static)修饰符可以使用在多个场景下,下面我们来快速了解一下。

静态变量
类的成员变量在每一个实例中都会有一份自己的拷贝,可以但是如果它被static关键词修饰,就表明它会被所有的实例共享,它不属于任何一个实例,它是属于类的,即使这个类没有任何的实例,该static成员变量也是存在的。

静态常量
静态常量使用的比较多,一般用于定义系统中常用的一些预定义参数,例如任务类型、处理状态、商品种类等等,与静态变量的区别就是多了final修饰符,例如:
public class Task{
public static final String TASK_STATUS_INIT = "INIT";
public static final String TASK_STATUS_PROCESSING = "PROCESSING";
public static final String TASK_STATUS_COMPLETED = "COMPLETED";
...
}
使用时直接 类名.常量名 即可。

静态方法
静态方法不需要实例化类就可以使用,也只能访问静态的类成员变量。我们经常在工具类中看到它的身影,例如我们之前提到的Math类就包含一系列的静态方法,abs、pow等等。
静态方法还可以用来构造对象,称之为静态工厂方法,例如NumberFormat类,它拥有若干getXXXInstance的静态方法来构造对象,如下所示:
NumberFormat.getIntegerInstance();
NumberFormat.getNumberInstance();
NumberFormat.getCurrencyInstance();
...
为什么不使用构造器而使用静态工厂方法构造对象呢?原因是构造器必须与类名相同,这样不好区分不同的实例,另外构造器无法改变构造的对象类型。

静态块
静态块一般用来初始化类静态变量,在类加载时就会运行,和静态方法一样,静态块也不能访问非静态变量,例如:
public class Task{
public static quota;
static {
quota = 10;
System.out.println("quota has been initialized to 10 ");
}
}

正文到此结束