18-静态构造块

2020-10-27  本文已影响0人  c88bc9f9d088

    静态代码块主要指的是使用static关键字定义的代码块,静态块的定义需要考虑两种情况:注类中定义静态块、非主类中定义静态块。
范例:在非主类中进行静态块的定义

class Person{
    public Person(){
        System.out.println("【构造方法】Person类构造方法执行");
    }
    static{
        System.out.println("【静态块】静态块执行");
    }
    {
    System.out.println("【构造块】Person构造块执行");
    }
}
public class JavaDemo{
    public static void main(String args[]){
        new Person();
        new Person();
        new Person();
    }   
}

    此时可以发现静态代码块会优先于构造块执行,并且不管有多少个实例化对象出现静态代码块只会执行一次,静态代码块的主要目的是为类中的静态属性初始化。
范例:观察静态属性初始化

class Message {
    public static String getCountry(){
        return "中华人民共和国";   
    }
}
class Person{
    private static String country;
    static{
        //可能有很多语句要执行
        country = Message.getCounty(); //编写一部分代码
        System.out.println(country);
    }
}
public class JavaDemo{
    public static void main(String args[]){
        new Person();
        new Person();
        new Person();
    }   
}

    对于静态代码块还必须考虑另一种情况,在主类中定义的形式。
范例:在注类中进行静态代码块的定义

public class JavaDemo{
    static{
        System.out.println("*************程序初始化***********");    
    }
    public static void main(String args[]){
        System.out.println("哈哈哈哈哈哈哈哈哈哈");
    }   
}

    静态代码块优先于主方法执行。

上一篇下一篇

猜你喜欢

热点阅读