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)。