动手动脑

错误的原因是foo()里面没参数 因为函数定义了一个带有一个·参数的构造函数 当调用函数是如果自己定义了 必须使用这个方法
请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。

结论 ;
静态初始化块只执行一次。 创建子类型的对象时,也会导致父类型的静态初始化块的执行。
public class Example
{
int x = 3;//类的实例变量,初始化值为3
static int y = 4;//类的静态变量,初始化值为4
public static void method()//静态方法
{
System.out.println("实例变量x = " + new Example().x);//在静态方法中访问类的实例变量需首先进行类的实例化
System.out.println("静态变量y = " + y);//在静态方法中可直接访问类的静态变量
}
public static void main(String[] args)
{
Example.method();
Example ex = new Example();
System.out.println("x = " + ex.x);
}
}

使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。
public class Cvd
{
public static void main(String[] args) {
Cvd c1=new Cvd();
Cvd c2=new Cvd();
Cvd c3=new Cvd();
System.out.println("一共创建"+n+"个对象");
}
}
public class Cvd
{
static int n=0;
public Cvd()
{
n++;
}
}
浙公网安备 33010602011771号