Java 接口字段

Java面向对象设计 - Java接口字段


一个接口可以有三种类型的成员:

  • 常量字段
  • 抽象,静态和默认方法
  • 静态类型作为嵌套接口和类

一个接口不能有可变的实例和类变量。与类不同,接口不能被实例化。接口的所有成员都是隐式公开的。

常量字段声明

我们可以在接口中声明常量字段,如下所示。它声明一个名为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字段只赋值一次,因此除了声明之外,我们不能设置接口字段的值。

以下代码显示了接口的一些有效和无效字段声明:

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

  boolean YES = true;
  boolean NO = false;

  Test TEST = new Test();
}

使用接口中字段名称中的所有大写字母表示它们是常量是一种约定。

接口的字段总是公共的。