提前感谢您的帮助。我是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;应该可以跨方法使用。我感谢任何帮助。感谢。
答案 0 :(得分:1)
我想我找到了正确的帖子来回答我的问题。总之,在我的第一个版本中,&#34;在&#34;和&#34; out&#34;是局部变量,它们仅在构造函数的执行期间存在。
using a variable in constructor in a method outside of constructor