一個介面可以有三種類型的成員:
- 常量字段
- 抽象,靜態和默認方法
- 靜態類型作為嵌套介面和類
一個介面不能有可變的實例和類變數。與類不同,介面不能被實例化。 介面的所有成員都是隱式公開的。
常量字段聲明
可以在介面中聲明常量字段,如下所示。 它聲明一個名為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
)。