静态初始化器
静态初始化器static{}
static {
num = 100;//num的初始值调为100
System.out.println("静态初始化器被调用了,num的初始值调为" + num);
}
class cylinder {
private static int num = 0;
private static double pi = 3.14;
private double radius;
private int height;
static {
num = 100;//num的初始值调为100
System.out.println("静态初始化器被调用了,num的初始值调为" + num);
}
public cylinder(double r, int h) {
radius = r;
height = h;
num++;
}
public static void count() {
System.out.println("创建了" + num + "对象");
}
double area() {
return pi * radius * radius;
}
double volume() {
return area() * height;
}
int renum()
{
return num;
}
}
public class sentence{
public static void main(String[] args)
{
cylinder.count();
cylinder a=new cylinder(2.5,3);
a.count();
System.out.println("圆柱"+a.renum()+"的体积="+a.volume());
cylinder b=new cylinder(1.0,2);
b.count();
System.out.println("圆柱"+b.renum()+"的体积="+b.volume());
}
}
在该例中创建了类cylinder的两个对象,但其中的静态初始化器中的代码之执行一次。
类是在第一次被使用的时候才被装载的,而不是在程序启动时就装载程序中的所有可能要用到的类。
如果有多个静态初始化器,则它们在类的初始化时会依次执行。