类所创建对象个数

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达到跟踪创建对象个数的目标。

原文地址:https://www.cnblogs.com/liyuchao/p/9825597.html

时间: 2024-11-14 12:07:57

类所创建对象个数的相关文章

求类中创建对象的个数

使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数.请写一个类,,在任何时候都可以向它查询"你已经创建了多少个对象"? 1.设计思想: 定义静态变量,定义构造函数,进行函数实现. 2.源代码 public class num { static int n=0; public static void main(String[] args) { num a=new num(); num b=new num(); num c=new num(); num d=new num(); S

《more effective c++》条款26 限制类对象的个数

问题: 如何限制类对象的个数?比如1个,10个等等. 方法(1): 将类的构造函数定义为private,那么就无法实例化这个类了.但是如何创建1个对象出来?方法有2种: 1.声明一个友元函数,那么在友元函数中就可以调用构造函数了,创建对象时使用static限制,那么就保证只有一个对象了.类似的定义如下: 1 class Printer 2 { 3 public: 4 friend Printer& thePrinter(); 5 private: 6 Printer(); 7 Printer(c

02-类和对象-跟踪类对象创建个数

使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象"? 1 public class DuiXiang { 2 public static void main(String args[]) { 3 TongJi x=new TongJi(); 4 x.shuchu(); 5 TongJi y=new TongJi(); 6 y.shuchu(); 7 TongJi z=new TongJi(); 8 z.shuchu

第1章 类和对象——定义类和创建对象

1.1     定义类.创建对象 在编程时,要定义类,然后在创建这个类的对象(实例). 1.1.1 定义类 定义类的语法个式如下: 访问修饰符 Class 类名 {     类的成员1:     ................     类的成员n:       } 各项的含义如下. 1)  “访问修饰符”用来限制类的作用范围或访问级别,类的修饰符只有public和internal两种(嵌套类除外).其中,声明为public的类可以被任何其他类访问:声明为internal的类智只能从同一个程序集

Java动手动脑课后作业1-求创建对象个数

截图 //通过静态字段和构造函数知道所创建对象个数 //刘启明,October 17,2015 package Demo; class ObjectNumbers{ static int number=0; public ObjectNumbers()  { System.out.println("已经创建了"+(++number)+"个对象!!"); } } public class Search { public static void main(String[

跟踪某个类所创建对象的个数

package Demo01; public class demo01 { private static int n; public demo01() { n++;//次new一个对象的时候都可以给n加1 } public static int getNum() { return n;//返回n值 } public static void main(String[] args) { // TODO 自动生成的方法存根 demo01 t1=new demo01(); demo01 t2=new d

使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

设计思想 定义一个静态字段,在构造函数中写一个静态字段自家的语句,这样,因为静态字段不会因为在此调用而改变数值所以可以计算建立对象的个数. 源代码 //使用静态字段和构造函数跟踪对象 package bao; public class sum { public static int a=0; int c; public sum(int cc) { c=cc; a++; } public int get() { return a; } } package bao; public class D_X

使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数

package ke2; public class Genzong { private static int n = 0; public Genzong() { n++; } public static int GetNum() { return n; } public static void main(String[] args) { Genzong n1=new Genzong(); Genzong n2=new Genzong(); Genzong n3=new Genzong(); Ge

课后作业(1)使用类的静态字段和构造函数,跟踪某个类所创建对象的个数。

示例程序(一) //使用静态字段 1 public class Checkclassnumber { 2 static int num = 0; 3 { 4 num++; 5 } 6 public static void main(String[] args) 7 { 8 Checkclassnumber x1 = new Checkclassnumber(); 9 System.out.println("已创建" + num + "个对象"); 10 11 Che