Java接口字段

一個接口可以有三種類型的成員:

  • 常量字段
  • 抽象,靜態和默認方法
  • 靜態類型作爲嵌套接口和類

一個接口不能有可變的實例和類變量。與類不同,接口不能被實例化。 接口的所有成員都是隱式公開的。

常量字段聲明

可以在接口中聲明常量字段,如下所示。 它聲明一個名爲Choices的接口,它有兩個字段的聲明:YESNO。 兩者都是int數據類型。

public interface  Choices   {
    public static final int YES  = 1;
    public static final int NO  = 2;
}

接口中的所有字段都是隱式的publicstaticfinalChoices接口可以聲明如下,而不改變其含義:

public interface  Choices   {
    int YES  = 1;
    int NO  = 2;
}

可以使用點形式的形式訪問接口中的字段,如下 -

<interface-name>.<field-name>

可以使用Choices.YESChoices.NO訪問Choices接口中的YESNO字段的值。下面的代碼演示瞭如何使用點符號來訪問接口的字段。

public class ChoicesTest {
  public static void main(String[] args) {
    System.out.println("Choices.YES = " + Choices.YES);
    System.out.println("Choices.NO = " + Choices.NO);
  }
}

接口中的字段總是最終的(final),無論關鍵字final是否在其聲明中使用。必須在聲明時初始化一個字段。
可以使用編譯時或運行時常量表達式來初始化字段。 由於final字段只賦值一次,因此除了聲明之外,不能設置接口字段的值。

以下代碼顯示了接口的一些有效和無效字段聲明:

public interface ValidFields {
  int X = 10;
  int Y = X;
  double N = X + 10.5;

  boolean YES = true; 
  boolean NO = false;

  //Test TEST = new Test();
}

使用接口中字段名稱中的所有大寫字母表示它們是常量是一種約定。接口的字段總是公共的(public)。