java代碼塊的基本原理是什麼?



Answers

它被稱為初始化塊

Java編譯器將初始化塊複製到每個構造函數中。 因此,這種方法可以用來在多個構造函數之間共享一段代碼。

Question

在java中使這種代碼有效的基本原理是什麼? 它是因為某些特定的原因而存在還是僅僅是其他Java語言設計決策的副產品? 難道你不能只使用consructor來達到同樣的效果嗎?

class Student
{
    {
        System.out.println("Called when Student class is instantiated.");
    }
}



這是一個初始化塊。 正如Matt Ball提到的,它們被複製到每個構造函數中。

您可能有興趣了解靜態初始化塊 (也在Matt的鏈接中 ):

public class Foo {
    static {
        System.out.println("class Foo just got initialized!");
    }

    {
        System.out.println("an instance of Foo just got initialized!");
    }
}



Links