一个接口可以有三种类型的成员:
一个接口不能有可变的实例和类变量。与类不同,接口不能被实例化。 接口的所有成员都是隐式公开的。
可以在接口中声明常量字段,如下所示。 它声明一个名为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
)。