gpt4 book ai didi

java - 这两段代码有什么区别?

转载 作者:行者123 更新时间:2023-12-02 03:44:21 25 4
gpt4 key购买 nike

我无法理解为什么以下代码之一可以编译,而另一部分则不能。

无法编译的(编译器说方法 KeyBidings() 需要返回类型):

public KeyBidings(){
Action rightAction = new AbstractAction(){
public void actionPreformed(ActionEvent e){
x+=10;
drawPanel.repaint();
}
};
Action leftAction = new AbstractAction(){
public void actionPreformed(ActionEvent e){
x-=10;
drawPanel.repaint();
}
};

InputMap inputMap = drawPanel.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMap = drawPanel.getActionMap();

inputMap.put(KeyStroke.getKeyStroke("RIGHT"), "rightAction");
actionMap.put("rightAction", rightAction);
inputMap.put(KeyStroke.getKeyStroke("LEFT"), "leftAction");
actionMap.put("leftAction", leftAction);

add(drawPanel);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(640, 480);
setTitle("Game");
setLocationRelativeTo(null);
setVisible(true);
}

并且编译得很好:

public KeyBidings(){
Action rightAction = new AbstractAction(){
public void actionPerformed(ActionEvent e) {
x +=10;
drawPanel.repaint();
}
};

InputMap inputMap = drawPanel.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMap = drawPanel.getActionMap();

inputMap.put(KeyStroke.getKeyStroke("RIGHT"), "rightAction");
actionMap.put("rightAction", rightAction);

add(drawPanel);

pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}

编辑:我不知道构造函数和方法之间的区别,但现在我有另一个问题:https://gyazo.com/cd3c21a8562589451814903febaf89fe

这里有什么问题吗?我已经包含了下面两个类的源代码。

源代码1:http://pastebin.com/vwNtJZEG源代码2:http://pastebin.com/nL4SbtkM

最佳答案

第二个是名为 KeyBidings 的类的构造函数,而第一个是其他类的方法,但缺少返回类型。

阅读the tutorial about constructors .

请注意,编译器并没有说该方法可能不是公共(public)的,正如您的标题所示。它说它必须有一个返回类型。这是完全不同的。

关于java - 这两段代码有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36460544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com