什么是初始化块? [英] What is an initialization block?

查看:31
本文介绍了什么是初始化块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们可以将代码放在构造函数或方法或初始化块中.初始化块有什么用?是不是每个java程序都必须有它?

We can put code in a constructor or a method or an initialization block. What is the use of initialization block? Is it necessary that every java program must have it?

推荐答案

首先,有两种初始化块:

  • 实例初始化块,和
  • 静态初始化块.

这段代码应该说明它们的使用以及它们的执行顺序:

This code should illustrate the use of them and in which order they are executed:

public class Test {

    static int staticVariable;
    int nonStaticVariable;        

    // Static initialization block:
    // Runs once (when the class is initialized)
    static {
        System.out.println("Static initalization.");
        staticVariable = 5;
    }

    // Instance initialization block:
    // Runs each time you instantiate an object
    {
        System.out.println("Instance initialization.");
        nonStaticVariable = 7;
    }

    public Test() {
        System.out.println("Constructor.");
    }

    public static void main(String[] args) {
        new Test();
        new Test();
    }
}

打印:

Static initalization.
Instance initialization.
Constructor.
Instance initialization.
Constructor.

如果您想在不考虑使用哪个构造函数的情况下运行某些代码,或者如果您想为匿名类进行一些实例初始化,则实例初始化块非常有用.

Instance itialization blocks are useful if you want to have some code run regardless of which constructor is used or if you want to do some instance initialization for anonymous classes.

这篇关于什么是初始化块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆