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

我是Java新手,今天我在尝试执行ActionListener时遇到了代码问题 我的java类如下所示:

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显示它不存在。