创建对象的数量 - 构造函数
我想计算我创建的对象数量。
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);
}
}
其中构造函数counter ++必须来。 [如果我在所有construtor方法中给出counter ++,对于第一个对象创建本身,counter ++会增加到3。 ]
ctt c1 = new ctt(4);
当我创建c1对象时,counter ++会增加到1。
ctt c2 = new ctt();
此c2对象没有增加。 可以解决这个问题!
答案 0 :(得分:0)
这看起来像是家庭作业,所以我会基于此回答。如果我错了,请发表评论,我会更新我的回答:
查看实际增加计数器的位置(只有一个),然后查看此方法/构造函数的签名与其他签名的不同之处。这应该可以帮助您了解正在发生的事情。
如果仍然没有帮助,请从调用代码开始使用调试器并逐步执行代码。
答案 1 :(得分:0)
使用integer作为参数的构造函数只有递增计数器的语句。
ctt c1 = new ctt(4)
语句调用ctt(int a)
和
声明ctt c2 = new ctt();
- >调用ctt()
,不会增加计数器。
如果你需要两个构造函数递增,你需要在ctt()构造函数中递增计数器。 ,即不带任何参数的构造函数。
答案 2 :(得分:0)
您只需要在c(双倍)中递增计数器。这是因为它在c()和c(int a)中调用,后者又调用c(),随后调用c(double a)