Java eclipse:无法解析为变量

时间:2016-12-29 02:13:53

标签: java eclipse

提前感谢您的帮助。我是Java的初学者。我正在使用一个类并定义它的构造函数。第一个版本错误,代码中的注释:

public class QueueByStacks {
    // constructor
    public QueueByStacks() {
        LinkedList<Integer> in = new LinkedList<Integer>();
        LinkedList<Integer> out = new LinkedList<Integer>();
    }

    public Integer poll() {
        move();
        return isEmpty()? null : out.pollFirst();
        // out can not be resolved. But I think out is defined in the constructor then when I call the constructor in the main function then it should be initialized, so why I can not use out here?
    }
}

我修改了代码并且它有效:

public class QueueByStacks {    
    private LinkedList<Integer> in;
    private LinkedList<Integer> out;
    // constructor
    public QueueByStacks() {
        in = new LinkedList<Integer>();
        out = new LinkedList<Integer>();
    }
}

所以我想知道为什么第一个版本错了?我的理解是,当我实际调用一个类时,我正在调用构造函数,所以&#34;在&#34;和&#34; out&#34;应该可以跨方法使用。我感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

我想我找到了正确的帖子来回答我的问题。总之,在我的第一个版本中,&#34;在&#34;和&#34; out&#34;是局部变量,它们仅在构造函数的执行期间存在。

using a variable in constructor in a method outside of constructor