2013-10-03 55 views
0

我無法讓我的程序以交互方式運行。無法弄清楚如何引用不同類別的掃描儀對象

在類System.in之一被改爲從文本文件,像這樣:

public class mainClass 
{ 
    public static void main(String[] args) 
    { 
     ... 
     try {System.setIn(new java.io.FileInputStream("foo.txt"));} 
     catch (java.io.FileNotFoundException e) {} 
     Scanner sc = new Scanner(System.in); 

     someClass instance = new someClass(sc); 
     ... 
    } 
} 

我遇到的問題是我在其他類。我不知道如何調用點或引用這個掃描儀。

編輯:

好,所以我的課程接受掃描儀作爲參數。有沒有辦法在稍後的方法中調用該變量?

public someClass (Scanner sc) 
{ 

} 

public void test(String a) 
{ 
    someClass.sc.nextLine(); 
} 

當我嘗試這樣的事情時,我得到一個錯誤,說它找不到變量sc。

回答

3

除非將該引用傳遞給另一個類或某個實例,否則不能引用相同的Scanner對象。

Scanner sc = new Scanner(System.in); 
SomeClass instance = new SomeClass(sc); 

Scanner實例作爲參數的SomeClass的構造函數。您可以將該引用保存到變量中,並在需要時重新使用它。

+0

好吧,所以我的課接受掃描儀作爲參數。有沒有辦法在稍後的方法中調用該變量?公共無效測試(字符串a){ someClass.sc.nextLine();}公共無效測試(公共無效測試(字符串a){ 公共無效等級(掃描儀SC){}' )。 }' 如果我試圖用這種方式調用它,我會得到一個錯誤。 – mrT

+0

@ user2840824請用新代碼更新您的答案。在繼續之前,請閱讀[關於類和對象的java教程。](http://docs.oracle.com/javase/tutorial/java/javaOO/) –

+0

好吧我已經更新了上面的代碼,現在看了那個教程。 – mrT