2016-12-29 134 views
0

感謝您提前幫助。我是Java的初學者。我正在使用一個類並定義它的構造函數。第1版是錯誤的代碼的註釋中: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

第一版本,輸入/輸出是局部變量,它的生命週期是剛剛在構造函數方法。 –

回答