default998 2022-09-07 17:51 采纳率: 87.5%
浏览 29
已结题

Java——static 统计类对象个数

Java——static 统计类对象个数
请问这个程序里面21行cnt的个数为什么是0,而在29行的输出结果中是2,按照12行的方法以及24,27行的输出结果证明方法确实
有被调用,可为什么cnt却没有计数呢?


```java
class Student {
    public static int cnt = 0;
 // private String sname;
 // private int sage;
    public String sname;
    public int sage;

    public Student() {
        cnt++;
    }

    public Student(String name, int age) { //12行
        this.sname = name;
        this.sage = age;
        cnt++;
    }
}

public class TestStatic_6 {
    public static void main(String[] args) {
        System.out.println("Student.cnt = " + Student.cnt); //21行

        Student st1 = new Student("zhangsan", 20);
        System.out.printf("%s %d \n", st1.sname, st1.sage); //24行

        Student st2 = new Student("lisi", 30);
        System.out.printf("%s %d \n", st2.sname, st2.sage); //27行

        System.out.printf("Student类总共构造了%d个对象!\n", Student.cnt); //29行
    }
}


  • 写回答

3条回答 默认 最新

  • zcl_1991 2022-09-07 18:00
    关注

    21行不是0才奇了怪了;你在构造方法里面做的累加,21行前又没new 对象,29行前new了两个对象,不是2才奇怪

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月15日
  • 已采纳回答 9月7日
  • 创建了问题 9月7日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)