1、显式静态:JAVA允许将多个静态初始化动作组织成一个特殊的“静态块”,如:
public class Spoon{
static int i;
static{
i=47;
}
}
尽管上面的代码看起来像个方法,,但它实际上只是一段跟在static关键字后面的代码。与其他静态初始化动作一样,这段代码仅执行一次:当首次生成这个类的一个对象时,或者首次访问属于那个类的静态数据成员时(即便从未生成过那个类的对象)。例如:
import ...
class cup{
cup(int marker){
print("cup("+marker+")");
}
void f(int marker){
print("f("+marker+")");
}
}
class cups{
static cup cup1;
static cup cup2;
static{
cup1=new cup(1);
cup2=new cup(2);
}
cups(){
print("cups()");
}
}
public class sample{
public void static main(String args){
print("inside main()");
cups.cup1.f(99);
}
}
//output:inside main()
cup(1)
cup(2)
f(99)