课后作业(查询类对象创建个数)

     1.程序设计思想

  创建对象过程:检测类是否被加载没有加载的先加载--->为新生对象分配内存--->将分配的内存空间都初始化为零值--->对对象进行必要的设置---->执行<init>方法把对象进行初始化。

  Static_Test Test2;//仅对象声明   Static_Test Test4=Test3;//此处并非算做创建,仅对象引用,Test4指向Test3的空间,这两者都不算真正的对象创建,当对象使用new创建时,算做真正的创建,对象Static_Test Test1=new Static_Test();//分配空间->初始化数据->调用构造函数,所以在类中设一个静态变量num,在实参构造中,无参构造,执行++操作,即每创建一个对象,调用一次构造函数,num加一。再在类中定义一个静态方法用于输出num的值(即创建对象的次数)。

  2.程序代码:

     

 1 //创建对象过程:检测类是否被加载没有加载的先加载--->为新生对象分配内存--->将分配的内存空间都初始化为零值--->对对象进行必要的设置---->执行<init>方法把对象进行初始化
 2 public class Static_Test {
 3     static int num=0;
 4     int number;
 5     Static_Test()
 6     {
 7         number=0;
 8         ++num;
 9     }
10     Static_Test(int n)
11     {
12         this.number=n;
13         ++num;
14     }
15     static void show()
16     {
17         System.out.println("你已创建 "+num+" 个对象");
18     }
19     public static void main(String[] args) {
20         Static_Test Test1=new Static_Test();//分配空间->初始化数据->调用构造函数
21         Static_Test Test2;//仅声明
22         Static_Test Test3=new Static_Test(100);
23         Static_Test Test4=Test3;//此处并非算做创建,仅对象引用,Test4指向Test3的空间
24         show();
25     }
26 }

    3. 结果截图:

   

                 

原文地址:https://www.cnblogs.com/zhao-teng-ass/p/7696016.html