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