java - 括号内的指令仅包含 Static 关键字作为标题

标签 java static

我试图找到有关此特殊性的答案,但找不到任何答案。

我在下面的代码中有一条括号内的指令,该指令仅包含 static 关键字作为 header 。

我确实清楚地了解它的作用,并且可以像任何其他静态方法/变量一样猜测它们的用途,但我无法为其命名。

它既不是变量,也不是方法(它不返回任何内容,甚至不返回“void”),当然也不是构造函数,因为使用了 static 关键字。

我们如何称呼这种特殊的“方法”?

这是代码:

    public class Test{

    static {
        System.out.println("What do we call this?");
    }

    public Test(){
        System.out.println("Instance of Test created");
    }

    public static void main(String[] args) {
        new TestSon().go();
    }

    public void go(){
        System.out.println("Go method Test");
    }

}

class TestSon extends Test{

    static {
        System.out.println("Same here...");
    }

    public TestSon(){
        System.out.println("Instance of TestSon created");
    }

    @Override
    public void go() {
        System.out.println("Go method son");
    }
}

输出:

What do we call this?
Same here...
Instance of Test created
Instance of TestSon created
Go method son

最佳答案

这是一个所谓的“静态初始化 block ”,您可以在 https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html 阅读更多相关信息。

关于java - 括号内的指令仅包含 Static 关键字作为标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812069/

相关文章:

java - Dagger 2、如何添加依赖接口(interface)

c++ - 使用类变量作为类成员函数的默认参数

java - 即使在应用程序关闭后,静态变量也会存在吗?

c++ - 函数指针的静态初始化

java - Google App Engine 上 Spring Boot 应用程序的 Maven 配置文件

java - 在 SWT 项目中嵌入 SVG Canvas 的示例代码?

c++ - STL 静态常量成员定义

c - static inline void 和 void 有什么区别?

java - CMUSphinx 永远无法识别音频文件中的任何单词

java - 以优雅的方式从 java ArrayList 聚合值