类所创建对象个数

package text;

public class show 
{
    public static int i=0;
    
    {
        i++;
    }
    show(){}
    public static void many()
    {
        System.out.println("目前已创建对象个数为:"+i);
    }
    
    public static void main(String[] args)
    {
          show a=new show();
          show b=new show();
          show c=b;//运行后答案还是创建了两个对象,说明只是为对象b起了另一个名字
          many();
    }
}

结果:

目前已创建对象个数为:2

多创建1个对象后,得到的答案:

package text;

public class show 
{
    public static int i=0;
    
    {
        i++;
    }
    show(){}
    public static void many()
    {
        System.out.println("目前已创建对象个数为:"+i);
    }
    
    public static void main(String[] args)
    {
          show a=new show();
          show b=new show();
          show d=new show();
          show c=b;//运行后答案还是创建了两个对象,说明只是为对象b起了另一个名字
          many();
    }
}

结果:

目前已创建对象个数为:3

 

总结:

每次创建对象时,都会调用构造函数,而在调用构造函数之前,必会先运行非静态初始化块,所以可以通过非静态初始化块中的变量+1达到跟踪创建对象个数的目标。

 

posted @ 2018-10-21 16:47  星*月  阅读(216)  评论(0编辑  收藏  举报