static静态方法
static修饰域变量
特点:它被保存在类的内存区(堆中)的公共存储单元中,而不是保存在某个对象的内存区中。
因此,一个类的任何对象访问它时,存取到的都是相同的数值。
访问方式为“类名.域名”,也可通过对象引用来访问。
static修饰方法
称为静态方法,属于类方法,不属于类的任何对象。
特点:
- static是类方法,但可以被所有对象访问。调用这个方法时,可采用“对象引用.方法名”,也可采用“类名.方法名”。
- static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象);但非static方法(对象方法)可以访问static属性或方法。
- main方法是特殊的静态方法。
静态代码块
一个类中可以使用不包含在任何方法体中的静态代码块。当类被装载时,静态代码块被执行,且只被执行一次。
静态代码块经常用来对类中定义的属性进行初始化。
class StaticCodeBlock{
static int value;
static{
value=3;
System.out.println("value="+value);
}
public static void main(String[] args){
}
}
输出:
3