2011-03-23 121 views
0

我對Java比較陌生,經過大量搜索,我無法將任何相關問題的解決方案配對到我的項目中。我試圖實現一個非常簡單的方法來寫入/讀取數組,並且它不被編譯器識別。 「鍵盤」也是一個「變量未被識別」。這裏的數組的聲明,與在它的工作方法的位進一步下跌...(第一次長時間BTW :)提前感謝...Java聲明/變量範圍問題

private static void loadMakeModelYear() 
import java.util.Scanner; 

String [][] makeModelYear = {{"Make", "Model", "Year"},{"Blank", "Blank", "Blank"}}; 

private static void loadMakeModelYear() 
{ 
    for (int i = 0; i < 3; i++) 
    { 
     System.out.println("Please enter a " + makeModelYear[i][0]); 
     makeModelYear [i][1] = keyboard.nextLine(); 
    } 
} 
+2

是您的'鍵盤'變量在任何地方聲明? – asgs 2011-03-23 03:35:15

+2

導入語句應該位於文件的開頭。您不能在方法 – 2011-03-23 03:36:52

+0

中包含「import java.util.Scanner」請粘貼您的*整個*類,以便我們可以正確查看它。謝謝! – corsiKa 2011-03-23 03:37:09

回答

1

這只是一種猜測,但您的代碼似乎使用keyboard小寫k,而您的錯誤消息使用Keyboard與大寫K.檢查您的變量的情況。

+0

爲了所有的慷慨幫助,我選擇了簡潔。我將在下次發佈整個課程。鍵盤變量被聲明。導入語句位於文件的開頭。再次感謝... – StatsViaCsh 2011-03-23 03:44:35

+0

是的人,我沒有公佈整個班級文件。永遠不會期望它按照我發佈的方式進行編譯......我在這裏提交了我所看到的「有問題」的代碼。 – StatsViaCsh 2011-03-23 03:46:26

+0

@Yanick:C#,這讓人很沮喪!大聲笑我習慣於VS2010中更強大的調試環境。 – StatsViaCsh 2011-03-23 03:47:34

0

我正確地重寫了你的例子,因爲它可能在這裏解釋更好的東西。

import java.util.Scanner; 

class SomeClass 

    public static void main(String...args) { 
     loadMakeModelyear(); 
    } 

    static String[][] makeModelYear = new String[][] { 
     {"Make", "Model", "Year"}, 
     {"Blank", "Blank", "Blank"} 
    }; 

    private static void loadMakeModelYear() { 
     Scanner keyboard = new Scanner(System.in); 
     for (int i = 0; i < 3; i++) { 
      System.out.println("Please enter a " + makeModelYear[0][i]); 
      makeModelYear [1][i] = keyboard.nextLine(); 
     } 
    } 
} 

對於Java,有比C#更多的資源。一個通常非常有用的網站(至少對我來說)是Real's howto(查看Java索引)。

+0

謝謝你。再一次,對不起,我沒有發佈我的整個班級,但它看起來完全像你的,有一些額外的變量,另一種方法等,我已經得到了你在那裏。謝謝你的提供壽,我現在正在看這個網站... – StatsViaCsh 2011-03-23 04:03:25

+0

等等,我對我最後的迴應太快了......現在應用你的一些變化......再次感謝...... – StatsViaCsh 2011-03-23 04:05:45

+0

是的,數組索引需要顛倒:) – 2011-03-23 04:11:21

0

你在用什麼IDE? NetBeans在提供大多數VS2010功能方面做得不錯。

我沒有看到鍵盤聲明。你在其他地方宣佈嗎?

「鍵盤」並不是Java中的一個特殊對象,因此您可以訪問真實生活的鍵盤,如果有幫助的話。

+0

我沒有使用IDE。 Textpad。數據結構類。 :)我想我的鬥爭是這個想法的一部分。我看過NetBeans。這就是我真正指的是當我用我有限的經驗評論強大的環境時...... – StatsViaCsh 2011-03-23 03:59:02

+0

我對Visual Studio沒有太多經驗,但據我所知,在VS中,我需要編譯才能看到/清除錯誤。而在Netbeans/Eclipse中,這是「現場」完成的。我不是在討論兩個Java IDE的neet插件來幫助調試/測試/等。 (即代碼覆蓋率)。 – 2011-03-23 04:35:00

0

我的我我.....我親愛的,你對Java語言的運作方式感到非常困惑。讓我們仔細看看你的代碼。

1.)首先,import語句應該是文件中的第一條語句。在導入之前唯一的聲明是包聲明。

  • 但你所做的明顯錯誤是通過聲明這樣的方法。在java中,任何方法的作用域都綁定到一個類。這不是聲明式風格編程,您可以在其中聲明獨立方法。這個數組和方法也適用於你的數組,即使它們是靜態的,它也必須是某個類的一部分。

3.)其次,您使用的是可變鍵盤,但您尚未將其聲明在任何位置。

我希望你明白,你只是使用了錯誤的範例。經過我這麼一說,「Java是純粹OO」

問候 狂熱

+0

@ Vaid:嗨,是的,我們討論瞭如何發佈我的代碼的非常簡化版本,謝謝您的反饋。 – StatsViaCsh 2011-03-23 03:56:22

0

我想我看到你的問題。這只是一個猜測,我不確定你是否已經這樣做了。如果您沒有,則可能需要將參考變量keyboard設置爲Scanner類。這可以通過以下方式完成:

Scanner keyboard = new Scanner(System.in); 
+0

謝謝noob,這是我的線... – StatsViaCsh 2011-03-23 04:00:37