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中的对象计数程序的主要内容,如果未能解决你的问题,请参考以下文章

Java对象回收流程

内存管理笔记

使用 JDBC 的 Oracle 临时表计数错误

web代码片段

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程