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


         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. 结果截图:

       

                     

  • 相关阅读:
    linux系统中不同颜色的文件夹及根目录介绍
    linux命令学习 随笔
    Happiness
    Sequence Number
    base64加密解密c++代码
    Wooden Sticks
    出租车费
    关系推断
    如何在Ubuntu中安装中文输入法
    c语言中printf("%x",-1);为什么会输出-1的十六进制补码??
  • 原文地址:https://www.cnblogs.com/zhao-teng-ass/p/7696016.html
Copyright © 2020-2023  润新知