1.示例程序:

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

2.运行结果

 

 

3.结果分析

(1)

{

    field=200;

}

该部分为类的初始化块,可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员。类的这种“没有名字”的“成员”,多用于初始化类的字段。 

(2)

public int field=100;  在定义时进行初始化,此时field = 100;

(3)

System.out.println(obj.field); 输出field的值100

(4)

obj=new InitializeBlockClass(300);

System.out.println(obj.field);

利用构造方法进行初始化,field的值初始化为300,输出300

 

4.Java字段初始化的规律

1)执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

2)执行类的构造函数。

注:类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

posted on 2015-10-17 10:16  卫平公  阅读(289)  评论(0编辑  收藏  举报