一個介面可以有三種型別的成員:
一個介面不能有可變的範例和類變數。與類不同,介面不能被範例化。 介面的所有成員都是隱式公開的。
可以在介面中宣告常數欄位,如下所示。 它宣告一個名為Choices
的介面,它有兩個欄位的宣告:YES
和NO
。 兩者都是int
資料型別。
public interface Choices {
public static final int YES = 1;
public static final int NO = 2;
}
介面中的所有欄位都是隱式的public
,static
和final
。Choices
介面可以宣告如下,而不改變其含義:
public interface Choices {
int YES = 1;
int NO = 2;
}
可以使用點形式的形式存取介面中的欄位,如下 -
<interface-name>.<field-name>
可以使用Choices.YES
和Choices.NO
存取Choices
介面中的YES
和NO
欄位的值。下面的程式碼演示了如何使用點符號來存取介面的欄位。
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
)。