5.9.1 使用初始化块

时间:2022-11-06 19:38:59

初始化块是Java类里可出现的第4中成员(前面依次有成员变量、方法和构造器)
初始化块的修饰符只能是static

package chap5_9;

public class Person {
    {
        int a = 6;
        if (a > 4) {
            System.out.println("Person 初始化块:局部变量a的值大于4");
        }
        System.out.println("Person的初始化块");
    }
    {

        System.out.println("Person的第二个初始化块");
    }

    public Person() {
        System.out.println("Person类的无参数构造器");

    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Person();

    }

}
Person 初始化块:局部变量a的值大于4
Person的初始化块
Person的第二个初始化块
Person类的无参数构造器

初始化块只在创建Java对象时隐式执行,而且在执行构造器之前执行。

package chap5_9;

public class InstanceInitTest {

    {
        a=6;
    }
    int a=9;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(new InstanceInitTest().a);

    }

}

运行结果

9
package chap5_9;

public class InstanceInitTest {
    int a=9;
    {
        a=6;
    }


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(new InstanceInitTest().a);

    }

}

运行结果

6