Pages

2011年4月30日 星期六

[Java] initializer blocks

在撰寫Java的class時,可以設定class成員變數的初值,然而,如果成員變數的設定需要做一些判斷才能給初值,除了在建構式內撰寫判斷之外,以下的方法可以有條件的設定初值給成員變數:

public class UncleClass
{
      int v;
      { // 直接以括號開始寫,
        //括號前沒有任何函式名!!

            //這裡寫判斷式,並設定v的初值。
      }
      public UncleClass() {;}
      // …
}

上面沒有函式名稱的括號刮住的,就是initializer blocks。寫在裡面的code會自動複製到主類別(UncleClass)的每個建構式內,蠻適合用於一個類別有很多個建構式的情況。

沒有留言:

張貼留言