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。我应该在哪里增加计数器变量?我以前很困惑。。谢谢你的帮助!