我了解到,要访问静态成员类,语法是OuterClass.NestedStaticClass
。下面访问静态成员类
对于以下接口Input
给定的,
interface Input{
static class KeyEvent{
public static final int KEY_DOWN = 0;
public static final int KEY_UP = 0;
public int type;
public int keyCode;
public int keyChar;
}
static class TouchEvent{
public static final int TOUCH_DOWN = 0;
public static final int TOUCH_UP =0;
public static final int TOUCH_DRAGGED = 2;
public int type;
public int x, y;
public int pointer;
}
public boolean isKeyPressed(int keyCode);
.....
public List<KeyEvent> getKeyEvents();
public List<TouchEvent> getTouchEvents();
}
是实现Keyboard
,
class Keyboard implements Input{
....
@Override
public List<TouchEvent> getTouchEvents() {
TouchEvent obj1 = new TouchEvent();
TouchEvent obj2 = new TouchEvent();
List<TouchEvent> list = new ArrayList<TouchEvent>();
list.add(obj1);
list.add(obj2);
return list;
}
}
在此实现Keyboard
,我并不需要使用Input.TouchEvent
低于行代码。
TouchEvent obj1 = new TouchEvent();
TouchEvent obj2 = new TouchEvent();
List<TouchEvent> list = new ArrayList<TouchEvent>();
但下面执行,我不得不用Input.TouchEvent
,
public class NestedClassInInterface {
public static void main(String[] args) {
Input.TouchEvent t = new Input.TouchEvent();
}
}
如何理解?
因为要实现在你前面的情况接口'input' .. – Babel
如果您实现接口'Input',如何访问的范围'KeyEvent'不同? – overexchange