Java:在接口中使用类的目的是什么

时间:2016-06-20 17:41:32

标签: java interface

我的一位朋友正在编写一些Java代码,我们就他的问题交换了一些想法(他使用了相当混乱的框架)。

他的一个问题是通过在接口内的私有类中放置一个枚举来解决的。当他告诉我这件事时我很头疼。他说这是一种在界面中包含枚举的方式。我一直认为接口专门用于暴露界面,仅此而已。

为什么可以在接口中放置类,以及它可以用于什么目的?

2 个答案:

答案 0 :(得分:3)

我们可以在接口内部使用类。其用法的一个例子可以是:

public interface Input
{
    public static class KeyEvent {
         public static final int KEY_DOWN = 0;
         public static final int KEY_UP = 1;
         public int type;
         public int keyCode;
         public char keyChar;
    }
    public static class TouchEvent {
         public static final int TOUCH_DOWN = 0;
         public static final int TOUCH_UP = 1;
         public static final int TOUCH_DRAGGED = 2;
         public int type;
         public int x, y;
         public int pointer;
    }
    public boolean isKeyPressed(int keyCode);
    public boolean isTouchDown(int pointer);
    public int getTouchX(int pointer);
    public int getTouchY(int pointer);
    public float getAccelX();
    public float getAccelY();
    public float getAccelZ();
    public List<KeyEvent> getKeyEvents();
    public List<TouchEvent> getTouchEvents();
}

这里的代码有两个嵌套类,用于封装有关事件对象的信息,这些事件对象稍后在方法定义中使用,如getKeyEvents()。将它们放在Input界面内可以提高内聚力。

答案 1 :(得分:0)

  

为什么可能?

让我通过提及9.1.4. Interface Body and Member Declarations

来回答这个问题
  

接口的主体可以声明[..]类(第9.5节)