动手动脑

 

 错误的原因是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++;

  }
}

 

                                                                                                                                                                                                                                                                                                                                                                                  

posted on 2019-10-18 22:14  孔kk  阅读(107)  评论(0)    收藏  举报

导航