簡體   English   中英

Java:在接口內具有類的目的是什么

[英]Java: what is the purpose of having a class inside an interface

我的一個朋友正在編寫一些Java代碼,我們就他的問題交換了一些想法(他使用的是混亂的框架)。

他的問題之一是通過將枚舉放在接口內的私有類中來解決的。 當他告訴我這件事時,我很頭疼。 他說, 這是在接口內部進行枚舉的一種方式 我一直認為接口僅是公開接口而已。

為什么可以在接口內放置類,並且可以達到什么目的?

我們可以在接口內部有類。 其用法的一個示例可以是:

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接口中可以提高凝聚力。

為什么可能呢?

讓我通過參考9.1.4來回答這個問題 接口主體和成員聲明

接口的主體可以聲明[..]類(第9.5節)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM