美文网首页
18-静态构造块

18-静态构造块

作者: c88bc9f9d088 | 来源:发表于2020-10-27 11:11 被阅读0次

        静态代码块主要指的是使用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("哈哈哈哈哈哈哈哈哈哈");
        }   
    }
    

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

    相关文章

      网友评论

          本文标题:18-静态构造块

          本文链接:https://www.haomeiwen.com/subject/dgntvktx.html