• Java:构造代码块,静态代码块



    本文内容:

    • 局部代码块
    • 构造代码块
    • 静态代码块
    • 补充

     首发日期:2018-03-28


    局部代码块:

    局部代码块用于限制变量的生命周期,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可以使用局部变量来限制变量的生命周期带局部代码块中


    构造代码块:

    • 构造函数只对对应的对象进行初始化,构造代码块给类的所有对象进行初始化。
    • 由于构造代码块给类的所有对象进行初始化,所以对于每个对象都要初始化成一样值的变量,可以防止构造代码块中初始化。
    class Person{
        String gender;
        int age;
        { //构造代码块
            System.out.println("构造代码块运行阶段");
            gender="男";
        }
        Person(){//构造函数
            System.out.println("构造函数Person()运行阶段");
        }
        Person(int age){//构造函数
            System.out.println("构造函数Person(int age)运行阶段");
            this.age=age;
        }
        
    }
    
    
    public class Demo {
        public static void main(String[] args) {
            Person p1=new Person();
            System.out.println(p1.gender);
            Person p2=new Person(18);
            System.out.println(p2.gender);
        }
    }

    上述代码结果:

    构造代码块运行阶段
    构造函数Person()运行阶段
    男
    构造代码块运行阶段
    构造函数Person(int age)运行阶段
    男

    构造代码块的好处的例子:

    构造函数版本:

    image

    构造代码块版本:

    image


    静态代码块:

    • 静态代码块与构造代码块不同的是,它只执行一次,用于对整个类进行初始化,通常是对类变量进行初始化处理。
    • 静态代码块中只能修改类变量。
    • 静态代码块的执行比主函数要早。
    • 有时候因为静态代码块只执行一次。所以有时候会用来“显示程序流程”。
    class Person{
        static String gender;
        int age;
        static {
            System.out.println("静态代码块执行完成");
            gender="男";//更改的变量只能是类变量
        }
        Person(){//构造函数
            System.out.println("构造函数Person()运行阶段");
        }
        Person(int age){//构造函数
            System.out.println("构造函数Person(int age)运行阶段");
            this.age=age;
        }
    }
    
    public class Demo {
    
        public static void main(String[] args) {
            Person p1=new Person();
            System.out.println(p1.gender);
            Person p2=new Person(18);
            System.out.println(p2.gender);
    
        }
    
    }

    上述代码执行结果:

    静态代码块执行完成
    构造函数Person()运行阶段
    男
    构造函数Person(int age)运行阶段
    男

    补充:

    • 各个初始化块的运行顺序:静态代码块-》构造代码块-》构造方法

  • 相关阅读:
    Android 拍照 代码实例
    利用Android手机里的摄像头进行拍照
    看视频时,类加载器没太理解,现在再整理下几个要点
    关于java设计模式与极品飞车游戏的思考
    【Mood-3】心声
    源自梦想 eclipse快捷键整理
    2020重新出发,JAVA语言,JAVA的诞生和发展史
    2020重新出发,序章: 语言的诞生
    2020重新出发,JAVA学前了解,DOS常用命令
    2020重新出发,JAVA学前了解,Windosws常用快捷键
  • 原文地址:https://www.cnblogs.com/progor/p/8665664.html
Copyright © 2020-2023  润新知