2016-12-29 13 views
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"をメソッド間で使用できるようにすることです。私はどんな助けにも感謝します。ありがとう。

+0

第一バージョンは、ローカル変数であり、そのライフサイクルは、単にコンストラクタメソッドです。 –

答えて

関連する問題