java_字段初始化的规律、静态方法中访问类的实例成员、查询创建对象的个数

字段初始化规律:

当执行如下代码时

 1 class InitializeBlockClass{
 2     
 3     public int field=100;
 4      { field=200; } 
 5     public InitializeBlockClass(int value) {
 6         this.field=value;
 7     }
 8     public InitializeBlockClass(){
 9         
10     }
11       { field=150; }
12 }
13 
14 
15 
16 public class Work {
17     public static void main(String[] args) {
18         InitializeBlockClass obj=new InitializeBlockClass();
19         System.out.println(obj.field);
20         obj=new InitializeBlockClass(300);
21         System.out.println(obj.field);
22     }
23 
24 }

执行结果如下

 

当执行空构造方法不赋值时,会按照代码的先后顺序依次进行赋值,最后结果为最后赋的值;当执行有参数的构造函数时,会直接赋值为传递的参数。

当代码中存在静态程序初始化块时,会执行在前面的静态初始化块,且只执行一次。

静态方法中访问类的实例成员:

静态方法中没有进行对象的实例化,需要调用时,在静态方法中进行类的实例化就可以了。

 

 1 public class Work {
 2     public static void main(String[] args) {
 3         shuju.get();
 4     }//end main
 5 
 6 }//end Work
 7 class shuju{
 8     public int value=100;
 9     public static int value1=120;
10     public static void get() {
11         shuju s=new shuju();
12         System.out.println("实例对象:"+s.value);
13         System.out.println("静态对象:"+value1);
14         
15     }//end get
16 }//end shuju

 查询创建对象的个数:

在类中创建一个静态变量num,每执行一次构造函数就进行num++的操作,最后num即为创建对象的数量。

 

 1 public class Work {
 2     public static void main(String[] args) {
 3         jishu j_1=new jishu();
 4         jishu j_2=new jishu();
 5         jishu j_3=new jishu();
 6         jishu j_4=new jishu();
 7         jishu j_5=new jishu();
 8         j_1.getnum();
 9     }
10 }
11 class jishu{
12     static int num=0;
13      jishu() {
14         num++;
15     }
16      public void getnum() {
17          System.out.println("创建类的数量为:"+num);
18      }
19 }

 

posted @ 2019-10-18 19:41  dululudululu  阅读(252)  评论(0编辑  收藏  举报