Java 私有变量不能引用同一类中的另一个方法
我是Java新手,今天我在尝试执行ActionListener时遇到了代码问题 我的java类如下所示:Java 私有变量不能引用同一类中的另一个方法,java,variables,reference,Java,Variables,Reference,我是Java新手,今天我在尝试执行ActionListener时遇到了代码问题 我的java类如下所示: public class exam{ private void createForm(){ ... JButton jbtn = new JButton("OK"); jbtn.addActionListener((ActionListener) this); ... } public static vo
public class exam{
private void createForm(){
...
JButton jbtn = new JButton("OK");
jbtn.addActionListener((ActionListener) this);
...
}
public static void main(String[] args){
exam ex = new exam();
ex.createForm();
}
public void ActionPerformed(ActionEvent ae){
//IDE show that no variable name "jbtn"
if (ae.getSource() == jbtn){
...
}
}
}
jbtn变量在createForm方法中声明。Java使用所谓的作用域规则来确保您不会意外地使用无意使用的变量。通过在createForm中声明jbtn,您告诉Java编译器您只想在该方法中使用它,而不想在其他任何地方使用它。这称为局部变量,如中所示,它是方法的局部变量
您可能希望使用成员变量,因为它是类的成员。这在类内部声明,但在任何方法外部声明。在您的情况下,如下所示:
public class exam{
JButton jbtn;
private void createForm(){
...
jbtn = new JButton("OK");
jbtn.addActionListener((ActionListener) this);
...
}
变量的声明现在处于类级别,并且在createForm中以与ActionPerformed中相同的方式引用它
这在Java中是一个相当基本的概念,所以您可能想看看一些Java教程。这是一个很好的起点。我的代码有问题。什么问题?这里没有任何私有变量-您有局部变量。好的@JonSkeet,这是局部变量variable@LutzHorn对不起,英语不好skill@user3630076这不是你英语的问题:问题应该更具体。阅读此问题的人应该能够立即看到问题所在。例如,您可以在描述中使用代码注释:当我尝试访问jbtn变量时,我的IDE显示它不存在。