Java 语言中的类初始化块

yufei       6 年, 1 月 前       1339

Java 语言中允许类中定义一个特殊的块,这个块不属于任何方法,也没有任何其它修饰符修饰,就是简简单单的在一个大括号 {} 里包含了一些代码,如下面所示,你知道它用来做什么的吗?

import java.io.*; 
public class JavaTester
{ 
    { 
        System.out.println("Common part of constructors invoked !!"); 
    } 

    public JavaTester() 
    { 
        System.out.println("Default Constructor invoked"); 
    } 
    public JavaTester(int x) 
    { 
        System.out.println("Parametrized constructor invoked"); 
    } 
    public static void main(String arr[]) 
    { 
        JavaTester obj1, obj2; 
        obj1 = new JavaTester(); 
        obj2 = new JavaTester(0); 
    } 
} 

编译运行以上代码,输出结果如下

[yufei@www.twle.cn java]$ javac JavaTester.java && java JavaTester
Common part of constructors invoked !!
Default Constructor invoked
Common part of constructors invoked !!
Parametrized constructor invoked

大家看到下面的代码没有,这个用大括号扩起来的特殊块,在 Java 语言中,称之为 「 初始化块 」。

{ 
    System.out.println("Common part of constructors invoked !!"); 
}

初始化块 用于声明和初始化类的各种构造函数的公共部分。简单来说,就是可以把一个类的所有的构造函数的公共部分抽出来,放到一个初始化块中。这样,代码就更简洁明了了。

从上面的输出结果中可以看到,只要调用类的任何一个构造函数,都会自动调用这个类的初始化块。而且,是在构造函数之前调用。

初始化块的位置无关紧要,因为不管放在哪里,它都会在构造函数调用之前被调用。

后记

Java 中还存在一个静态块,就是在大括号之前有一个 static 关键字。相关详情,你可以访问我们的 Java 中的静态块

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.