0
ありがとうございました。私はJavaの初心者です。私はクラスを使用して、そのコンストラクタを定義しています。第一バージョンのコード内のコメントに問題がある:Java eclipse:変数として解決できません
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>();
}
}
第一バージョンが間違っているなぜだから私は疑問に思って?私が理解していることは、クラスを実際に呼び出すときに、コンストラクタを呼び出すことで、 "in"と "out"をメソッド間で使用できるようにすることです。私はどんな助けにも感謝します。ありがとう。
第一バージョンは、ローカル変数であり、そのライフサイクルは、単にコンストラクタメソッドです。 –