我在一些文章中读到了java中有一些叫做Initializing的东西; 我们可以在哪里执行一些初始化赋值当加载类或创建实例时.
除了方法和构造函数之外,初始化块是Java程序中可以执行操作的第三个位置.
class InitDemo
{
static int y;
int x;
{
y = 10;
x = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我在问C++中是否存在这样的范例?谢谢.
需要指出的是,Java 中有两种不同形式的初始化块。{...}没有关键字的裸块static只是编译器的一些混乱——块中的文本被附加到任何定义的构造函数的前面——没有生成单独的代码段。static {...另一方面,一个以 开头的块是一个静态初始化块和一个(半)正确的过程(毫不奇怪,它被命名为“静态”)。
该static块仅在类加载后立即执行一次(有一些注意事项)。每次执行构造函数时都会执行非静态初始化程序(由于被复制到构造函数中),因此通常不适合静态初始化。
| 归档时间: |
|
| 查看次数: |
1294 次 |
| 最近记录: |