AJPFX关于代码块的总结

Posted on 2019-05-09 23:49  AJPFX  阅读(100)  评论(0编辑  收藏  举报

代码块:
        {
                执行语句;
        }
(1) 当出现在局部位置时, 为局部代码块.
        局部位置: 如语句块中, 函数中, 构造代码块中, 静态代码块中等.
(2) 当出现在成员位置且不被static修饰时, 为构造代码块.
(3) 当出现在成员位置且被static修饰时, 为静态代码块

1. 局部代码块
        可用于定义局部变量的生命周期. 
        也即通过局部代码块可以控制局部变量的生命周期.
        变量的生命周期{}

        "变量的作用域: 声明变量的一对{}之间"这句话对于局部代码块来说, 
        声明在局部代码块中的变量, 其声明周期仅限于该局部代码块. // 局部代码块中的局部变量

2. 构造代码块/instance initializer
        构造代码块用于完成所有实例的初始化工作.
        每创建一个该类的实例对象, 便顺序执行一次该类的所有构造代码块.
        构造代码块在对象的生命周期内肯定执行且只执行一次.

        一个类可以有多个构造代码块, 各构造代码块按照声明的先后顺序执行.

        "变量的作用域: 声明变量的一对{}之间"这句话对于构造代码块来说, 
        声明在构造代码块中的变量, 其声明周期仅限于该构造代码块. // 构造代码块中的局部变量

3. 静态代码块/ static initializer
        静态代码块用于完成类的初始化工作.
        当且仅当类加载时执行. 在类的生命周期内只执行一次.

        一个类可以有多个静态代码块, 各静态代码块按照声明的先后顺序执行.

        "变量的作用域: 声明变量的一对{}之间"这句话对于静态代码块来说, 
        声明在静态代码块中的变量, 其声明周期仅限于该静态代码块. // 静态代码块中的局部变量
--------------------------------------------------------------------------------
变量的作用域: 声明变量的一对{}之间.
        具体情况如下:
                声明在语句块中的变量, 其作用域为该语句块; // 局部变量
                声明在函数中的变量, 其作用域为该函数; // 局部变量
                声明在构造代码块中的变量, 其作用域为该构造代码块; // 局部变量
                声明在静态代码块中的变量, 其作用域为该构造代码块; // 局部变量
                声明在局部代码块中的变量, 其作用域为该局部代码块; // 局部变量
                (局部代码块可以出现在语句块中, 函数中, 构造代码块中, 静态代码块中)
                声明在类成员位置上的变量, 其作用域为整个类. // 成员变量

Copyright © 2024 AJPFX
Powered by .NET 8.0 on Kubernetes