java中的对象计数程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的对象计数程序相关的知识,希望对你有一定的参考价值。
我是一名java初学者。我无法理解下面这段代码。
我正在尝试计算A和B类的对象数。 A中的A对象数为4,因此对于B,但是如果我第二次尝试访问AA.print则为输出8。
请帮忙。
package scripts;
class AA {
static int cntr = 0;
AA(){
cntr++;
}
}
class BB extends AA{
static int cntr = 0;
BB(){
cntr++;
}
}
public class objCount{
public static void main(String[] args) {
AA a1 = new AA();
new AA();
new AA();
new AA();
System.out.println("A class objects"+" "+AA.cntr); //A
BB b1 = new BB();
new BB();
new BB();
new BB();
System.out.println("B class objects"+" "+BB.cntr); //4
System.out.println("A class objects"+" "+AA.cntr); //8
}
}
答案
BB
继承自AA
:
class BB extends AA
这意味着每次你这样做:
new BB()
BB
的构造函数和AA
的构造函数执行。所以你的代码在AA
中递增计数器8次:
AA a1 = new AA(); // AA - 1
new AA(); // AA - 2
new AA(); // AA - 3
new AA(); // AA - 4
BB b1 = new BB(); // AA - 5, BB - 1
new BB(); // AA - 6, BB - 2
new BB(); // AA - 7, BB - 3
new BB(); // AA - 8, BB - 4
以上是关于java中的对象计数程序的主要内容,如果未能解决你的问题,请参考以下文章