だから私はプログラミングを始めて数年なので、それほど新しいわけではありませんが、Java (C++ から) を学び始めたばかりです。ライブラリを学習し、その例 (知っておく必要がある場合は jMonkeyEngine3) を調べているときに、ドキュメントが見つからないように見える外国の構文に出くわしました。
コードは次のとおりです (すべてがクラスのスコープ内にあります)。
/** Custom Keybinding: Map named actions to inputs. */
private void initKeys() {
// You can map one or several inputs to one named action
inputManager.addMapping("Pause", new KeyTrigger(KeyInput.KEY_P));
inputManager.addMapping("Left", new KeyTrigger(KeyInput.KEY_J));
inputManager.addMapping("Right", new KeyTrigger(KeyInput.KEY_K));
inputManager.addMapping("Rotate", new KeyTrigger(KeyInput.KEY_SPACE),
new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
// Add the names to the action listener.
inputManager.addListener(actionListener, new String[]{"Pause"});
inputManager.addListener(analogListener, new String[]{"Left", "Right", "Rotate"});
}
private ActionListener actionListener = new ActionListener() {
public void onAction(String name, boolean keyPressed, float tpf) {
if (name.equals("Pause") && !keyPressed) {
isRunning = !isRunning;
}
}
};
定義部分 (15) は、クラス内のデフォルト コンストラクターを使用して、actionListener という名前のプライベート スコープを持つ ActionListener のオブジェクトを作成し、onAction メソッド自体をオーバーライド/実装すると推測しています。次に、その実装 (11) では、この作成されたオブジェクトを参照しているだけですか? それは正しいでしょうか?
明確にしていただきありがとうございます。