2011-03-23 103 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