Java:计算创建的对象数-contsructor(调用此函数)

Java:计算创建的对象数-contsructor(调用此函数),java,object,constructor,count,this,Java,Object,Constructor,Count,This,已创建对象的计数-构造函数 我想计算我创建的对象的数量 class ctt { static int counter = 0; public ctt() { this(2.3); System.out.println("default ctt"); } public ctt(double a) { System.out.println("Double ctt"); } publ

已创建对象的计数-构造函数

我想计算我创建的对象的数量

 class ctt
 {
    static int counter = 0;
    public ctt()
    {
        this(2.3);
        System.out.println("default ctt");
    }

    public ctt(double a)
    {
        System.out.println("Double ctt");
    }

    public ctt(int a)
    {
        this();
        System.out.println("Int ctt");
        counter++; 
    }

    public static void main(String[] args)
    {
       ctt c1 = new ctt(4); 
       ctt c2 = new ctt();

       System.out.println("No.of object created: "+counter);
    }
}
其中必须包含构造函数计数器+。[如果我在all Constructor方法中指定计数器+,则对于第一个对象创建本身,计数器++将增加到3。]

       ctt c1 = new ctt(4); 
当我创建c1对象时,计数器++增加到1

       ctt c2 = new ctt();
此c2对象未递增。
有什么办法能解决这个问题吗

这看起来像是一个家庭作业,所以我会根据这个来回答。如果我错了,请评论,我将更新我的答案:

看看实际上增加计数器的地方只有一个,然后看看这个方法/构造函数的签名与其他方法/构造函数的签名有何不同。这将有助于你理解正在发生的事情


如果这仍然没有帮助,请从调用代码开始使用调试器并逐步执行代码。

以integer作为参数的构造函数只有递增计数器的语句

语句ctt c1=new ctt4这称为cttint a和

语句ctt c2=新ctt;->调用不增加计数器的ctt


如果您需要两个构造函数都递增,那么您也需要递增ctt构造函数中的计数器。i、 不接受任何参数的构造函数。

只需在c双精度a中增加计数器。这是因为它在c中被调用,在c int a中也被调用,c int a依次调用c,c随后调用c double a

如果我将counter++指定给默认构造函数,它也会影响c1对象。c1->增加两次。c2->增加一次。输出将得到:3,但应该是2。我应该在哪里增加计数器变量?我以前很困惑。。谢谢你的帮助!