代码块:
{
执行语句;
}
(1) 当出现在局部位置时, 为局部代码块.
局部位置: 如语句块中, 函数中, 构造代码块中, 静态代码块中等.
(2) 当出现在成员位置且不被static修饰时, 为构造代码块.
(3) 当出现在成员位置且被static修饰时, 为静态代码块
1. 局部代码块
可用于定义局部变量的生命周期.
也即通过局部代码块可以控制局部变量的生命周期.
变量的生命周期{}
"变量的作用域: 声明变量的一对{}之间"这句话对于局部代码块来说,
声明在局部代码块中的变量, 其声明周期仅限于该局部代码块. // 局部代码块中的局部变量
2. 构造代码块/instance initializer
构造代码块用于完成所有实例的初始化工作.
每创建一个该类的实例对象, 便顺序执行一次该类的所有构造代码块.
构造代码块在对象的生命周期内肯定执行且只执行一次.
一个类可以有多个构造代码块, 各构造代码块按照声明的先后顺序执行.
"变量的作用域: 声明变量的一对{}之间"这句话对于构造代码块来说,
声明在构造代码块中的变量, 其声明周期仅限于该构造代码块. // 构造代码块中的局部变量
3. 静态代码块/ static initializer
静态代码块用于完成类的初始化工作.
当且仅当类加载时执行. 在类的生命周期内只执行一次.
一个类可以有多个静态代码块, 各静态代码块按照声明的先后顺序执行.
"变量的作用域: 声明变量的一对{}之间"这句话对于静态代码块来说,
声明在静态代码块中的变量, 其声明周期仅限于该静态代码块. // 静态代码块中的局部变量
--------------------------------------------------------------------------------
变量的作用域: 声明变量的一对{}之间.
具体情况如下:
声明在语句块中的变量, 其作用域为该语句块; // 局部变量
声明在函数中的变量, 其作用域为该函数; // 局部变量
声明在构造代码块中的变量, 其作用域为该构造代码块; // 局部变量
声明在静态代码块中的变量, 其作用域为该构造代码块; // 局部变量
声明在局部代码块中的变量, 其作用域为该局部代码块; // 局部变量
(局部代码块可以出现在语句块中, 函数中, 构造代码块中, 静态代码块中)
声明在类成员位置上的变量, 其作用域为整个类. // 成员变量 |
|